blob: cf560381200d1c64a7b5578691bf0c54dd88ea29 [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;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053068static int fm_pcmrx_switch_enable;
69static int usb_switch_enable;
70static int lsm_port_index;
71static int slim0_rx_aanc_fb_port;
72static int msm_route_ec_ref_rx;
73static int msm_ec_ref_ch = 4;
Dhananjay Kumar242b5b02019-01-16 22:45:12 +053074static int msm_ec_ref_ch_downmixed = 4;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053075static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
76static int msm_ec_ref_sampling_rate = 48000;
77static uint32_t voc_session_id = ALL_SESSION_VSID;
78static int msm_route_ext_ec_ref;
79static bool is_custom_stereo_on;
80static bool is_ds2_on;
81static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053082static int aanc_level;
Meng Wangadbca4f2018-10-29 14:30:13 +080083static int num_app_cfg_types;
Surendar Karkae7507512018-07-20 15:46:54 +053084static int msm_ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053085
86#define WEIGHT_0_DB 0x4000
87/* all the FEs which can support channel mixer */
88static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
Dhananjay Kumar807f7e92018-12-11 18:10:08 +053089
90/* all the FES which can support channel mixer for bidirection */
91static struct msm_pcm_channel_mixer
92 channel_mixer_v2[MSM_FRONTEND_DAI_MM_SIZE][2];
93
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053094/* input BE for each FE */
95static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
96
97enum {
98 MADNONE,
99 MADAUDIO,
100 MADBEACON,
101 MADULTRASOUND,
102 MADSWAUDIO,
103};
104
105#define ADM_LSM_PORT_INDEX 9
106
107#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
108#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
109#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
110#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
111#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
112#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
113#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
114#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
115#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
116#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530117#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
118#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800119#define VA_CDC_DMA_TX_2_TEXT "VA_CDC_DMA_TX_2"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530120#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530121#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530122
123#define LSM_FUNCTION_TEXT "LSM Function"
124static const char * const lsm_port_text[] = {
125 "None",
126 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
127 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
128 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530129 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800130 VA_CDC_DMA_TX_2_TEXT, TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530131};
132
133struct msm_pcm_route_bdai_pp_params {
134 u16 port_id; /* AFE port ID */
135 unsigned long pp_params_config;
136 bool mute_on;
137 int latency;
138};
139
140static struct msm_pcm_route_bdai_pp_params
141 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
142 {HDMI_RX, 0, 0, 0},
143 {DISPLAY_PORT_RX, 0, 0, 0},
144};
145
146/*
147 * The be_dai_name_table is passed to HAL so that it can specify the
148 * BE ID for the BE it wants to enable based on the name. Thus there
149 * is a matching table and structure in HAL that need to be updated
150 * if any changes to these are made.
151 */
152struct msm_pcm_route_bdai_name {
153 unsigned int be_id;
154 char be_name[LPASS_BE_NAME_MAX_LENGTH];
155};
156static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
157
158static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
159 int fe_id);
160
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700161static void msm_routing_load_topology(size_t data_size, void *data);
162static void msm_routing_unload_topology(uint32_t topology_id);
163
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530164static int msm_routing_get_bit_width(unsigned int format)
165{
166 int bit_width;
167
168 switch (format) {
169 case SNDRV_PCM_FORMAT_S32_LE:
170 bit_width = 32;
171 break;
172 case SNDRV_PCM_FORMAT_S24_LE:
173 case SNDRV_PCM_FORMAT_S24_3LE:
174 bit_width = 24;
175 break;
176 case SNDRV_PCM_FORMAT_S16_LE:
177 default:
178 bit_width = 16;
179 }
180 return bit_width;
181}
182
183static bool msm_is_resample_needed(int input_sr, int output_sr)
184{
185 bool rc = false;
186
187 if (input_sr != output_sr)
188 rc = true;
189
190 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
191 (rc ? "oh yes" : "not really"),
192 input_sr, output_sr);
193
194 return rc;
195}
196
197static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
198 int channels)
199{
200 int rc = 0;
201
202 switch (topology) {
203 case SRS_TRUMEDIA_TOPOLOGY_ID:
204 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
205 msm_dts_srs_tm_init(port_id, copp_idx);
206 break;
207 case DS2_ADM_COPP_TOPOLOGY_ID:
208 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
209 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
210 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
211 is_custom_stereo_on);
212 if (rc < 0)
213 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
214 __func__, topology, port_id,
215 is_custom_stereo_on, rc);
216 break;
217 case DOLBY_ADM_COPP_TOPOLOGY_ID:
218 if (is_ds2_on) {
219 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
220 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
221 is_custom_stereo_on);
222 if (rc < 0)
223 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
224 __func__, topology, port_id, rc);
225 } else {
226 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
227 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
228 is_custom_stereo_on);
229 if (rc < 0)
230 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
231 __func__, topology, port_id, rc);
232 }
233 break;
234 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
235 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
236 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
237 if (rc < 0)
238 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
239 __func__, topology, port_id, copp_idx, rc);
240 break;
241 default:
242 /* custom topology specific feature param handlers */
243 break;
244 }
245}
246
247static void msm_pcm_routing_deinit_pp(int port_id, int topology)
248{
249 switch (topology) {
250 case SRS_TRUMEDIA_TOPOLOGY_ID:
251 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
252 msm_dts_srs_tm_deinit(port_id);
253 break;
254 case DS2_ADM_COPP_TOPOLOGY_ID:
255 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
256 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
257 msm_ds2_dap_deinit(port_id);
258 break;
259 case DOLBY_ADM_COPP_TOPOLOGY_ID:
260 if (is_ds2_on) {
261 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
262 msm_ds2_dap_deinit(port_id);
263 } else {
264 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
265 msm_dolby_dap_deinit(port_id);
266 }
267 break;
268 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
269 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
270 msm_qti_pp_asphere_deinit(port_id);
271 break;
272 default:
273 /* custom topology specific feature deinit handlers */
274 break;
275 }
276}
277
278static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
279 int path_type, int perf_mode)
280{
281 int itr = 0, rc = 0;
282
283 if ((path_type == ADM_PATH_PLAYBACK) &&
284 (perf_mode == LEGACY_PCM_MODE) &&
285 is_custom_stereo_on) {
286 for (itr = 0; itr < payload.num_copps; itr++) {
287 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
288 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
289 continue;
290 }
291
292 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
293 payload.port_id[itr],
294 payload.copp_idx[itr],
295 payload.session_id,
296 Q14_GAIN_ZERO_POINT_FIVE,
297 Q14_GAIN_ZERO_POINT_FIVE,
298 Q14_GAIN_ZERO_POINT_FIVE,
299 Q14_GAIN_ZERO_POINT_FIVE);
300 if (rc < 0)
301 pr_err("%s: err setting custom stereo\n",
302 __func__);
303 }
304 }
305}
306
307#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
308struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530309 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
310 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
311 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
312 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
313 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
314 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
315 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
316 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
317 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
318 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530319 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530320 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530321 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530322 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530323 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530324 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530325 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530326 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530327 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530328 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530329 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530330 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530331 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530332 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530333 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530334 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
335 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
336 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
337 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
338 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
339 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
340 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
341 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
342 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
343 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
344 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
345 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
346 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
347 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
348 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
349 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
350 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
351 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
352 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
353 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
354 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
355 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
356 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530357 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530358 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530359 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530360 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530361 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530362 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530363 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530364 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530365 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530366 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530367 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530368 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530369 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530370 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530371 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530372 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530374 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530375 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530376 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530377 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530378 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200379 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530380 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530381 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530382 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530383 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530384 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530385 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530386 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530387 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530388 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530389 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530390 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530391 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530392 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530393 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530394 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530395 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530396 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530397 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530398 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530399 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530400 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530401 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530402 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530403 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530404 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530405 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530406 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530407 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530408 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530409 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530410 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530411 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530412 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530413 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530414 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530415 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530416 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530417 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530418 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530419 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530420 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530421 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530422 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530423 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530424 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530425 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530426 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530427 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530428 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530429 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530430 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530431 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530432 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530433 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530434 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530435 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530436 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530437 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530438 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530439 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530440 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530441 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530442 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530443 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530444 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530445 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530446 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530447 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530448 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530449 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530450 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530451 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530452 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530453 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530454 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530455 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530456 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530457 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530458 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530459 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530460 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530461 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530462 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530463 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530464 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530465 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530466 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530467 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530468 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530469 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530470 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530471 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530472 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530473 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530474 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530475 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530476 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530477 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530478 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530479 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530480 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530481 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530482 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530483 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530484 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530485 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530486 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530487 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530488 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530489 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530490 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530491 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530492 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530493 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530494 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530495 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530496 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530497 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530498 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530499 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530500 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530501 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530502 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530503 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530504 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530505 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530506 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530507 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530508 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530509 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530510 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530511 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530512 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530513 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530514 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530515 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530516 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530517 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530518 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530519 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530520 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530521 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530522 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530523 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530524 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530525 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530526 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530527 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530528 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530529 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530530 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530531 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530532 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530533 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530534 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530535 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530536 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530537 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530538 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530539 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530540 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530541 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530542 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530543 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530544 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530545 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530546 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530547 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530548 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530549 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530550 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530551 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530552 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530553 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530554 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530555 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530556 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700557 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530558 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530559 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530560 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530561 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530562 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530563 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530564 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530565 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530566 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530567 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530568 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530569 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530570 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530571 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530572 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530573 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530574 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530575 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530576 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530577 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530578 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530579 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530580 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530581 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530582 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530583 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530584 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530585 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530586 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530587 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530588 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530589 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530590 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530591 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530592 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530593 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530594 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530595 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530596 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530597 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200598 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
599 LPASS_BE_SEN_AUXPCM_RX},
600 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
601 LPASS_BE_SEN_AUXPCM_TX},
602 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
603 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530604 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530605 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530606 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530607 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530608 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530609 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530610 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530611 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530612 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530613 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530614 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530615 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530616 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530617 LPASS_BE_VA_CDC_DMA_TX_1},
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800618 { AFE_PORT_ID_VA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
619 LPASS_BE_VA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530620 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530621 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530622 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530623 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530624 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530625 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530626 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530627 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530628 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530629 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530630 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530631 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530632 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530633 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530634 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530635 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530636 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530637 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530638 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530639 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530640 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530641 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530642 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530643 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530644 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530645 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530646 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530647 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530648 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200649 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530650 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200651 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530652 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200653 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530654 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
655 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530656 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530657};
658
659/* Track ASM playback & capture sessions of DAI
660 * Track LSM listen sessions
661 */
662static struct msm_pcm_routing_fdai_data
663 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
664 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530665 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
666 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530667 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530668 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
669 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530670 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530671 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
672 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530673 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530674 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
675 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530676 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530677 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
678 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530679 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530680 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
681 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530682 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530683 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
684 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530685 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530686 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
687 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530688 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530689 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
690 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530691 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530692 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
693 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530694 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530695 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
696 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530697 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530698 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
699 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530700 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530701 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
702 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530703 /* MULTIMEDIA14 */
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 /* MULTIMEDIA15 */
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 /* MULTIMEDIA16 */
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 /* MULTIMEDIA17 */
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 /* MULTIMEDIA18 */
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 /* MULTIMEDIA19 */
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 /* MULTIMEDIA20 */
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} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700724 /* MULTIMEDIA21 */
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} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530727 /* MULTIMEDIA26 */
728 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
729 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
730 /* MULTIMEDIA27 */
731 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
732 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530733 /* MULTIMEDIA28 */
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} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530736 /* MULTIMEDIA29 */
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 /* VOIP */
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 /* AFE_RX */
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 /* AFE_TX */
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 /* VOICE_STUB */
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 /* DTMF_RX */
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 /* QCHAT */
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 /* VOLTE_STUB */
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 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530761 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
762 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530763 /* LSM2 */
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} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530766 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530767 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
768 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530769 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530770 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
771 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530772 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530773 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
774 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530775 /* LSM6 */
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} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530778 /* LSM7 */
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} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530781 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530782 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
783 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530784 /* VOICE2_STUB */
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 /* VOICEMMODE1 */
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 /* VOICEMMODE2 */
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};
794
795static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
796 [MSM_BACKEND_DAI_MAX];
797static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
798static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
799static struct msm_pcm_stream_app_type_cfg
800 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
801
802static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
803
Florian Pfister522073c2018-09-26 15:39:15 +0200804/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530805void msm_pcm_routing_get_bedai_info(int be_idx,
806 struct msm_pcm_routing_bdai_data *be_dai)
807{
808 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
809 memcpy(be_dai, &msm_bedais[be_idx],
810 sizeof(struct msm_pcm_routing_bdai_data));
811}
812
Florian Pfister522073c2018-09-26 15:39:15 +0200813/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530814void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
815 struct msm_pcm_routing_fdai_data *fe_dai)
816{
817 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
818 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
819 sizeof(struct msm_pcm_routing_fdai_data));
820}
821
822void msm_pcm_routing_acquire_lock(void)
823{
824 mutex_lock(&routing_lock);
825}
826
827void msm_pcm_routing_release_lock(void)
828{
829 mutex_unlock(&routing_lock);
830}
831
832static int msm_pcm_routing_get_app_type_idx(int app_type)
833{
834 int idx;
835
836 pr_debug("%s: app_type: %d\n", __func__, app_type);
837 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
838 if (app_type_cfg[idx].app_type == app_type)
839 return idx;
840 }
841 pr_info("%s: App type not available, fallback to default\n", __func__);
842 return 0;
843}
844
845static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
846{
847 int idx;
848
849 pr_debug("%s: app_type: %d\n", __func__, app_type);
850 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
851 if (lsm_app_type_cfg[idx].app_type == app_type)
852 return idx;
853 }
854 pr_debug("%s: App type not available, fallback to default\n", __func__);
855 return 0;
856}
857
Surendar Karkae7507512018-07-20 15:46:54 +0530858static int get_port_id(int port_id)
859{
860 return (port_id == AFE_LOOPBACK_TX ? msm_ec_ref_port_id : port_id);
861}
862
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530863static bool is_mm_lsm_fe_id(int fe_id)
864{
865 bool rc = true;
866
867 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
868 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
869 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
870 rc = false;
871 }
872 return rc;
873}
874
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700875/*
876 * msm_pcm_routing_send_chmix_cfg:
877 * send the channel mixer command to mix the input channels
878 * into output channels.
879 *
880 * @fe_id: front end id
881 * @ip_channel_cnt: input channel count
882 * @op_channel_cnt: output channel count
883 * @ch_wght_coeff: channel weight co-efficients for channel mixing
884 * @session_type: indicates session is of type TX or RX
885 * @stream_type: indicates either Audio or Listen stream type
886 */
887int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
888 int op_channel_cnt, int *ch_wght_coeff,
889 int session_type, int stream_type)
890{
891
892 int rc = 0, idx = 0;
893 int be_index = 0, port_id;
894 unsigned int session_id = 0;
895
896 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
897 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
898 stream_type);
899 if (!is_mm_lsm_fe_id(fe_id)) {
900 /* bad ID assigned in machine driver */
901 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
902 return -EINVAL;
903 }
904
905 if (ch_wght_coeff == NULL) {
906 pr_err("%s: Null channel weightage coefficients passed\n",
907 __func__);
908 return -EINVAL;
909 }
910
911 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
912 port_id = msm_bedais[be_index].port_id;
913 if (!msm_bedais[be_index].active ||
914 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
915 continue;
916
917 session_id = fe_dai_map[fe_id][session_type].strm_id;
918
919 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
920 unsigned long copp =
921 session_copp_map[fe_id][session_type][be_index];
922 if (!test_bit(idx, &copp))
923 continue;
924 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
925 session_id, ip_channel_cnt,
926 op_channel_cnt, ch_wght_coeff,
927 session_type, stream_type);
928 if (rc < 0)
929 pr_err("%s: err setting channel mix config\n",
930 __func__);
931 }
932 }
933
934 return 0;
935}
936EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
937
Dhananjay Kumar807f7e92018-12-11 18:10:08 +0530938/**
939 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
940 * setting before use case start.
941 *
942 * @fe_id: frontend idx
943 * @type: stream direction type
944 * @params: parameters of channel mixer setting
945 *
946 * Return 0 for success
947 */
948int msm_pcm_routing_set_channel_mixer_cfg(
949 int fe_id, int type,
950 struct msm_pcm_channel_mixer *params)
951{
952 int i, j = 0;
953
954 channel_mixer_v2[fe_id][type].enable = params->enable;
955 channel_mixer_v2[fe_id][type].rule = params->rule;
956 channel_mixer_v2[fe_id][type].input_channel =
957 params->input_channel;
958 channel_mixer_v2[fe_id][type].output_channel =
959 params->output_channel;
960 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
961
962 for (i = 0; i < ADM_MAX_CHANNELS; i++)
963 channel_mixer_v2[fe_id][type].in_ch_map[i] =
964 params->in_ch_map[i];
965 for (i = 0; i < ADM_MAX_CHANNELS; i++)
966 channel_mixer_v2[fe_id][type].out_ch_map[i] =
967 params->out_ch_map[i];
968
969 for (i = 0; i < ADM_MAX_CHANNELS; i++)
970 for (j = 0; j < ADM_MAX_CHANNELS; j++)
971 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
972 params->channel_weight[i][j];
973
974 channel_mixer_v2[fe_id][type].override_in_ch_map =
975 params->override_in_ch_map;
976 channel_mixer_v2[fe_id][type].override_out_ch_map =
977 params->override_out_ch_map;
978
979 return 0;
980}
981EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
982
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530983int msm_pcm_routing_reg_stream_app_type_cfg(
984 int fedai_id, int session_type, int be_id,
985 struct msm_pcm_stream_app_type_cfg *cfg_data)
986{
987 int ret = 0;
988
989 if (cfg_data == NULL) {
990 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
991 ret = -EINVAL;
992 goto done;
993 }
994
995 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
996 __func__, fedai_id, session_type, be_id,
997 cfg_data->app_type, cfg_data->acdb_dev_id,
998 cfg_data->sample_rate);
999
1000 if (!is_mm_lsm_fe_id(fedai_id)) {
1001 pr_err("%s: Invalid machine driver ID %d\n",
1002 __func__, fedai_id);
1003 ret = -EINVAL;
1004 goto done;
1005 }
1006 if (session_type != SESSION_TYPE_RX &&
1007 session_type != SESSION_TYPE_TX) {
1008 pr_err("%s: Invalid session type %d\n",
1009 __func__, session_type);
1010 ret = -EINVAL;
1011 goto done;
1012 }
1013 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1014 pr_err("%s: Received out of bounds be_id %d\n",
1015 __func__, be_id);
1016 ret = -EINVAL;
1017 goto done;
1018 }
1019
1020 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1021
1022 /*
1023 * Store the BE ID of the configuration information set as the latest so
1024 * the get mixer control knows what to return.
1025 */
1026 last_be_id_configured[fedai_id][session_type] = be_id;
1027
1028done:
1029 return ret;
1030}
1031EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1032
1033/**
1034 * msm_pcm_routing_get_stream_app_type_cfg
1035 *
1036 * Receives fedai_id, session_type, be_id, and populates app_type,
1037 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1038 * -EINVAL and does not alter passed values.
1039 *
1040 * fedai_id - Passed value, front end ID for which app type config is wanted
1041 * session_type - Passed value, session type for which app type config
1042 * is wanted
1043 * be_id - Returned value, back end device id the app type config data is for
1044 * cfg_data - Returned value, configuration data used by app type config
1045 */
1046int msm_pcm_routing_get_stream_app_type_cfg(
1047 int fedai_id, int session_type, int *bedai_id,
1048 struct msm_pcm_stream_app_type_cfg *cfg_data)
1049{
1050 int be_id;
1051 int ret = 0;
1052
1053 if (bedai_id == NULL) {
1054 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1055 ret = -EINVAL;
1056 goto done;
1057 } else if (cfg_data == NULL) {
1058 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1059 ret = -EINVAL;
1060 goto done;
1061 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1062 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1063 ret = -EINVAL;
1064 goto done;
1065 } else if (session_type != SESSION_TYPE_RX &&
1066 session_type != SESSION_TYPE_TX) {
1067 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1068 ret = -EINVAL;
1069 goto done;
1070 }
1071
1072 be_id = last_be_id_configured[fedai_id][session_type];
1073 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1074 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1075 ret = -EINVAL;
1076 goto done;
1077 }
1078
1079 *bedai_id = be_id;
1080 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1081 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1082 __func__, fedai_id, session_type, *bedai_id,
1083 cfg_data->app_type, cfg_data->acdb_dev_id,
1084 cfg_data->sample_rate);
1085done:
1086 return ret;
1087}
1088EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1089
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301090static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1091 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301092{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301093 struct list_head *ptr, *next;
1094 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301095 pr_debug("%s\n", __func__);
1096
1097 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301098 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301099
1100 cal_block = list_entry(ptr,
1101 struct cal_block_data, list);
1102
Vikram Panduranga770b8382017-09-27 12:17:36 -07001103 if (cal_utils_is_cal_stale(cal_block))
1104 continue;
1105
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301106 if (((struct audio_cal_info_adm_top *)cal_block
1107 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301108 return cal_block;
1109 }
1110 }
1111 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1112 return NULL;
1113}
1114
1115static struct cal_block_data *msm_routing_find_topology(int path,
1116 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301117 int acdb_id,
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001118 int cal_index,
1119 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301120{
1121 struct list_head *ptr, *next;
1122 struct cal_block_data *cal_block = NULL;
1123 struct audio_cal_info_adm_top *cal_info;
1124
1125 pr_debug("%s\n", __func__);
1126
1127 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301128 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301129
1130 cal_block = list_entry(ptr,
1131 struct cal_block_data, list);
1132
Vikram Panduranga770b8382017-09-27 12:17:36 -07001133 if (cal_utils_is_cal_stale(cal_block))
1134 continue;
1135
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301136 cal_info = (struct audio_cal_info_adm_top *)
1137 cal_block->cal_info;
1138 if ((cal_info->path == path) &&
1139 (cal_info->app_type == app_type) &&
1140 (cal_info->acdb_id == acdb_id)) {
1141 return cal_block;
1142 }
1143 }
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001144 pr_debug("%s: Can't find topology for path %d, app %d, "
1145 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1146 exact ? "fail" : "defaulting to search by path");
1147 return exact ? NULL : msm_routing_find_topology_by_path(path,
1148 cal_index);
1149}
1150
1151static int msm_routing_find_topology_on_index(int session_type, int app_type,
1152 int acdb_dev_id, int idx,
1153 bool exact)
1154{
1155 int topology = -EINVAL;
1156 struct cal_block_data *cal_block = NULL;
1157
1158 mutex_lock(&cal_data[idx]->lock);
1159 cal_block = msm_routing_find_topology(session_type, app_type,
1160 acdb_dev_id, idx, exact);
1161 if (cal_block != NULL) {
1162 topology = ((struct audio_cal_info_adm_top *)
1163 cal_block->cal_info)->topology;
1164 }
1165 mutex_unlock(&cal_data[idx]->lock);
1166 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301167}
1168
Vikram Panduranga770b8382017-09-27 12:17:36 -07001169/*
1170 * Retrieving cal_block will mark cal_block as stale.
1171 * Hence it cannot be reused or resent unless the flag
1172 * is reset.
1173 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301174static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1175 int be_id)
1176{
1177 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301178 int app_type = 0, acdb_dev_id = 0;
1179
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301180 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1181 __func__, fedai_id, session_type, be_id);
1182
1183 if (cal_data == NULL)
1184 goto done;
1185
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301186 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1187 acdb_dev_id =
1188 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1189
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001190 pr_debug("%s: Check for exact LSM topology\n", __func__);
1191 topology = msm_routing_find_topology_on_index(session_type,
1192 app_type,
1193 acdb_dev_id,
1194 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1195 true /*exact*/);
1196 if (topology < 0) {
1197 pr_debug("%s: Check for compatible topology\n", __func__);
1198 topology = msm_routing_find_topology_on_index(session_type,
1199 app_type,
1200 acdb_dev_id,
1201 ADM_TOPOLOGY_CAL_TYPE_IDX,
1202 false /*exact*/);
1203 if (topology < 0)
1204 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301205 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301206done:
1207 pr_debug("%s: Using topology %d\n", __func__, topology);
1208 return topology;
1209}
1210
1211static uint8_t is_be_dai_extproc(int be_dai)
1212{
1213 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1214 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1215 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1216 return 1;
1217 else
1218 return 0;
1219}
1220
1221static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1222 int path_type, int perf_mode,
1223 uint32_t passthr_mode)
1224{
1225 int i, port_type, j, num_copps = 0;
1226 struct route_payload payload;
1227
1228 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1229 path_type == ADM_PATH_COMPRESSED_RX) ?
1230 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1231
1232 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1233 if (!is_be_dai_extproc(i) &&
1234 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1235 (msm_bedais[i].active) &&
1236 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301237 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301238 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1239 unsigned long copp =
1240 session_copp_map[fedai_id][sess_type][i];
1241 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301242 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301243 payload.copp_idx[num_copps] = j;
1244 payload.app_type[num_copps] =
1245 fe_dai_app_type_cfg
1246 [fedai_id][sess_type][i]
1247 .app_type;
1248 payload.acdb_dev_id[num_copps] =
1249 fe_dai_app_type_cfg
1250 [fedai_id][sess_type][i]
1251 .acdb_dev_id;
1252 payload.sample_rate[num_copps] =
1253 fe_dai_app_type_cfg
1254 [fedai_id][sess_type][i]
1255 .sample_rate;
1256 num_copps++;
1257 }
1258 }
1259 }
1260 }
1261
1262 if (num_copps) {
1263 payload.num_copps = num_copps;
1264 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1265 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1266 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1267 }
1268}
1269
1270void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1271 int stream_type)
1272{
1273 int i, session_type, path_type, port_type;
1274 u32 mode = 0;
1275
1276 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1277 /* bad ID assigned in machine driver */
1278 pr_err("%s: bad MM ID\n", __func__);
1279 return;
1280 }
1281
1282 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1283 session_type = SESSION_TYPE_RX;
1284 path_type = ADM_PATH_PLAYBACK;
1285 port_type = MSM_AFE_PORT_TYPE_RX;
1286 } else {
1287 session_type = SESSION_TYPE_TX;
1288 path_type = ADM_PATH_LIVE_REC;
1289 port_type = MSM_AFE_PORT_TYPE_TX;
1290 }
1291
1292 mutex_lock(&routing_lock);
1293
1294 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1295 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1296 if (!is_be_dai_extproc(i) &&
1297 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1298 (msm_bedais[i].active) &&
1299 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1300 mode = afe_get_port_type(msm_bedais[i].port_id);
1301 adm_connect_afe_port(mode, dspst_id,
1302 msm_bedais[i].port_id);
1303 break;
1304 }
1305 }
1306 mutex_unlock(&routing_lock);
1307}
1308
1309static bool route_check_fe_id_adm_support(int fe_id)
1310{
1311 bool rc = true;
1312
1313 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1314 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1315 /* fe id is listen while port is set to afe */
1316 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1317 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1318 __func__, fe_id, lsm_port_index);
1319 rc = false;
1320 }
1321 }
1322
1323 return rc;
1324}
1325
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001326/*
1327 * msm_pcm_routing_get_pp_ch_cnt:
1328 * Read the processed channel count
1329 *
1330 * @fe_id: Front end ID
1331 * @session_type: Inidicates RX or TX session type
1332 */
1333int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1334{
1335 struct msm_pcm_stream_app_type_cfg cfg_data;
1336 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301337 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001338
1339 memset(&cfg_data, 0, sizeof(cfg_data));
1340
1341 if (!is_mm_lsm_fe_id(fe_id)) {
1342 pr_err("%s: bad MM ID\n", __func__);
1343 return -EINVAL;
1344 }
1345
1346 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1347 &be_id, &cfg_data);
1348 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301349 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001350 return ret;
1351 }
1352
1353 app_type = cfg_data.app_type;
1354 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1355 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1356}
1357EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1358
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301359int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1360 int dspst_id, int stream_type,
1361 uint32_t passthr_mode)
1362{
1363 int i, j, session_type, path_type, port_type, topology;
1364 int num_copps = 0;
1365 struct route_payload payload;
1366 u32 channels, sample_rate;
1367 u16 bit_width = 16;
1368 bool is_lsm;
1369
1370 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1371 __func__, fe_id, perf_mode, dspst_id,
1372 stream_type, passthr_mode);
1373 if (!is_mm_lsm_fe_id(fe_id)) {
1374 /* bad ID assigned in machine driver */
1375 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1376 return -EINVAL;
1377 }
1378
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301379 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1380 session_type = SESSION_TYPE_RX;
1381 if (passthr_mode != LEGACY_PCM)
1382 path_type = ADM_PATH_COMPRESSED_RX;
1383 else
1384 path_type = ADM_PATH_PLAYBACK;
1385 port_type = MSM_AFE_PORT_TYPE_RX;
1386 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1387 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301388 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301389 path_type = ADM_PATH_COMPRESSED_TX;
1390 else
1391 path_type = ADM_PATH_LIVE_REC;
1392 port_type = MSM_AFE_PORT_TYPE_TX;
1393 } else {
1394 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1395 return -EINVAL;
1396 }
1397
1398 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1399 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1400 mutex_lock(&routing_lock);
1401
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301402 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301403 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1404 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1405 if (!route_check_fe_id_adm_support(fe_id)) {
1406 /* ignore adm open if not supported for fe_id */
1407 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1408 mutex_unlock(&routing_lock);
1409 return 0;
1410 }
1411
1412 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301413 /* re-enable EQ if active */
1414 msm_qti_pp_send_eq_values(fe_id);
1415 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301416 if (!is_be_dai_extproc(i) &&
1417 (afe_get_port_type(msm_bedais[i].port_id) ==
1418 port_type) &&
1419 (msm_bedais[i].active) &&
1420 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1421 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301422 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301423
1424 /*
1425 * check if ADM needs to be configured with different
1426 * channel mapping than backend
1427 */
1428 if (!msm_bedais[i].adm_override_ch)
1429 channels = msm_bedais[i].channel;
1430 else
1431 channels = msm_bedais[i].adm_override_ch;
1432
1433 bit_width = msm_routing_get_bit_width(
1434 msm_bedais[i].format);
1435 app_type =
1436 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1437 if (app_type && is_lsm) {
1438 app_type_idx =
1439 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1440 sample_rate =
1441 fe_dai_app_type_cfg[fe_id][session_type][i]
1442 .sample_rate;
1443 bit_width =
1444 lsm_app_type_cfg[app_type_idx].bit_width;
1445 } else if (app_type) {
1446 app_type_idx =
1447 msm_pcm_routing_get_app_type_idx(
1448 app_type);
1449 sample_rate =
1450 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1451 bit_width =
1452 app_type_cfg[app_type_idx].bit_width;
1453 } else {
1454 sample_rate = msm_bedais[i].sample_rate;
1455 }
1456 acdb_dev_id =
1457 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1458 topology = msm_routing_get_adm_topology(fe_id,
1459 session_type,
1460 i);
1461 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1462 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001463 COMPRESSED_PASSTHROUGH_GEN)
1464 || (passthr_mode ==
1465 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301466 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1467 pr_debug("%s: Before adm open topology %d\n", __func__,
1468 topology);
1469
1470 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301471 adm_open(port_id, path_type, sample_rate,
1472 channels, topology, perf_mode,
1473 bit_width, app_type, acdb_dev_id,
1474 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301475 if ((copp_idx < 0) ||
1476 (copp_idx >= MAX_COPPS_PER_PORT)) {
1477 pr_err("%s:adm open failed coppid:%d\n",
1478 __func__, copp_idx);
1479 mutex_unlock(&routing_lock);
1480 return -EINVAL;
1481 }
1482 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1483 __func__, fe_id, session_type, i);
1484 set_bit(copp_idx,
1485 &session_copp_map[fe_id][session_type][i]);
1486
1487 if (msm_is_resample_needed(
1488 sample_rate,
1489 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301490 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301491 msm_bedais[i].sample_rate);
1492
1493 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1494 unsigned long copp =
1495 session_copp_map[fe_id][session_type][i];
1496 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301497 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301498 payload.copp_idx[num_copps] = j;
1499 payload.app_type[num_copps] =
1500 fe_dai_app_type_cfg
1501 [fe_id][session_type][i]
1502 .app_type;
1503 payload.acdb_dev_id[num_copps] =
1504 fe_dai_app_type_cfg
1505 [fe_id][session_type][i]
1506 .acdb_dev_id;
1507 payload.sample_rate[num_copps] =
1508 fe_dai_app_type_cfg
1509 [fe_id][session_type][i]
1510 .sample_rate;
1511 num_copps++;
1512 }
1513 }
1514 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001515 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301516 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301517 msm_routing_send_device_pp_params(port_id,
1518 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301519 }
1520 }
1521 if (num_copps) {
1522 payload.num_copps = num_copps;
1523 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1524 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1525 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1526 }
1527 mutex_unlock(&routing_lock);
1528 return 0;
1529}
1530
1531static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1532{
1533 u32 session_id;
1534
1535 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301536 case MSM_FRONTEND_DAI_QCHAT:
1537 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1538 break;
1539 case MSM_FRONTEND_DAI_VOIP:
1540 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1541 break;
1542 case MSM_FRONTEND_DAI_VOICEMMODE1:
1543 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1544 break;
1545 case MSM_FRONTEND_DAI_VOICEMMODE2:
1546 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1547 break;
1548 default:
1549 session_id = 0;
1550 }
1551
1552 pr_debug("%s session_id 0x%x", __func__, session_id);
1553 return session_id;
1554}
1555
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301556static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1557 int dspst_id, int stream_type)
1558{
1559 int copp_idx = 0;
1560 int sess_type = 0;
1561 int j = 0, be_id = 0;
1562 int ret = 0;
1563
1564 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1565 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1566 return 0;
1567 }
1568
1569 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1570 sess_type = SESSION_TYPE_RX;
1571 else
1572 sess_type = SESSION_TYPE_TX;
1573
1574 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1575 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1576 __func__, fe_id, sess_type);
1577 return 0;
1578 }
1579
1580 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1581 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1582 channel_mixer_v2[fe_id][sess_type].input_channel;
1583
1584 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1585 __func__, sess_type, fe_id,
1586 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1587 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1588 msm_bedais[be_id].active);
1589
1590 if ((msm_bedais[be_id].active) &&
1591 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1592 unsigned long copp =
1593 session_copp_map[fe_id][sess_type][be_id];
1594 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1595 if (test_bit(j, &copp)) {
1596 copp_idx = j;
1597 break;
1598 }
1599 }
1600
1601 ret = adm_programable_channel_mixer(
1602 msm_bedais[be_id].port_id,
1603 copp_idx, dspst_id, sess_type,
1604 &channel_mixer_v2[fe_id][sess_type], 0);
1605 }
1606
1607 return ret;
1608}
1609
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301610static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1611 int dspst_id, int stream_type)
1612{
1613 int copp_idx = 0;
1614 int sess_type = 0;
1615 int i = 0, j = 0, be_id;
1616 int ret = 0;
1617
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301618 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1619 dspst_id, stream_type);
1620 if (ret) {
1621 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1622 fe_id);
1623 return ret;
1624 }
1625
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301626 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1627 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1628 return 0;
1629 }
1630
1631 if (!(channel_mixer[fe_id].enable)) {
1632 pr_debug("%s: channel mixer not enabled for FE %d\n",
1633 __func__, fe_id);
1634 return 0;
1635 }
1636
1637 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1638 sess_type = SESSION_TYPE_RX;
1639 else
1640 sess_type = SESSION_TYPE_TX;
1641
1642 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1643 ++i) {
1644 be_id = channel_input[fe_id][i] - 1;
1645 channel_mixer[fe_id].input_channels[i] =
1646 msm_bedais[be_id].channel;
1647
1648 if ((msm_bedais[be_id].active) &&
1649 test_bit(fe_id,
1650 &msm_bedais[be_id].fe_sessions[0])) {
1651 unsigned long copp =
1652 session_copp_map[fe_id][sess_type][be_id];
1653 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1654 if (test_bit(j, &copp)) {
1655 copp_idx = j;
1656 break;
1657 }
1658 }
1659
1660 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1661 __func__,
1662 fe_id, be_id, msm_bedais[be_id].channel,
1663 copp_idx);
1664 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001665 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301666 copp_idx, dspst_id, sess_type,
1667 channel_mixer + fe_id, i);
1668 }
1669 }
1670
1671 return ret;
1672}
1673
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301674/**
1675 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1676 * setting during runtime.
1677 *
1678 * @be_id: backend index
1679 * @session_id: session index
1680 * @session_type: session type
1681 * @params: parameters for channel mixer
1682 *
1683 * Retuen: 0 for success, else error
1684 */
1685int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1686 int session_type,
1687 struct msm_pcm_channel_mixer *params)
1688{
1689 int rc = 0;
1690 int port_id, copp_idx = 0;
1691
1692 be_id--;
1693 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1694 pr_err("%s: invalid backend id %d\n", __func__,
1695 be_id);
1696 return -EINVAL;
1697 }
1698
1699 port_id = msm_bedais[be_id].port_id;
1700 copp_idx = adm_get_default_copp_idx(port_id);
1701 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1702 __func__, port_id, copp_idx, session_id);
1703
1704 if ((params->input_channel < 0) ||
1705 (params->input_channel > ADM_MAX_CHANNELS)) {
1706 pr_err("%s: invalid input channel %d\n", __func__,
1707 params->input_channel);
1708 return -EINVAL;
1709 }
1710
1711 if ((params->output_channel < 0) ||
1712 (params->output_channel > ADM_MAX_CHANNELS)) {
1713 pr_err("%s: invalid output channel %d\n", __func__,
1714 params->output_channel);
1715 return -EINVAL;
1716 }
1717
1718 params->input_channels[0] = params->input_channel;
1719
1720 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1721 __func__, session_type,
1722 params->override_in_ch_map,
1723 params->override_out_ch_map,
1724 msm_bedais[be_id].active);
1725
1726 rc = adm_programable_channel_mixer(port_id,
1727 copp_idx,
1728 session_id,
1729 session_type,
1730 params,
1731 0);
1732 if (rc) {
1733 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1734 rc = -EINVAL;
1735 }
1736 return rc;
1737}
1738EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1739
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301740int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1741 int dspst_id, int stream_type)
1742{
1743 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1744 struct route_payload payload;
1745 u32 channels, sample_rate;
1746 uint16_t bits_per_sample = 16;
1747 uint32_t passthr_mode = LEGACY_PCM;
1748 int ret = 0;
1749
1750 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1751 /* bad ID assigned in machine driver */
1752 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1753 return -EINVAL;
1754 }
1755
1756 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1757 session_type = SESSION_TYPE_RX;
1758 path_type = ADM_PATH_PLAYBACK;
1759 port_type = MSM_AFE_PORT_TYPE_RX;
1760 } else {
1761 session_type = SESSION_TYPE_TX;
1762 path_type = ADM_PATH_LIVE_REC;
1763 port_type = MSM_AFE_PORT_TYPE_TX;
1764 }
1765
1766 mutex_lock(&routing_lock);
1767
1768 payload.num_copps = 0; /* only RX needs to use payload */
1769 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1770 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301771 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301772
1773 /* re-enable EQ if active */
1774 msm_qti_pp_send_eq_values(fedai_id);
1775 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1776 if (!is_be_dai_extproc(i) &&
1777 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1778 (msm_bedais[i].active) &&
1779 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1780 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301781 int port_id = get_port_id(msm_bedais[i].port_id);
1782
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301783 /*
1784 * check if ADM needs to be configured with different
1785 * channel mapping than backend
1786 */
1787 if (!msm_bedais[i].adm_override_ch)
1788 channels = msm_bedais[i].channel;
1789 else
1790 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301791
1792 bits_per_sample = msm_routing_get_bit_width(
1793 msm_bedais[i].format);
1794
1795 app_type =
1796 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1797 if (app_type) {
1798 app_type_idx =
1799 msm_pcm_routing_get_app_type_idx(app_type);
1800 sample_rate =
1801 fe_dai_app_type_cfg[fedai_id][session_type][i]
1802 .sample_rate;
1803 bits_per_sample =
1804 app_type_cfg[app_type_idx].bit_width;
1805 } else
1806 sample_rate = msm_bedais[i].sample_rate;
1807
1808 acdb_dev_id =
1809 fe_dai_app_type_cfg[fedai_id][session_type][i]
1810 .acdb_dev_id;
1811 topology = msm_routing_get_adm_topology(fedai_id,
1812 session_type,
1813 i);
Surendar Karkae7507512018-07-20 15:46:54 +05301814 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301815 sample_rate, channels, topology,
1816 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301817 app_type, acdb_dev_id,
1818 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301819 if ((copp_idx < 0) ||
1820 (copp_idx >= MAX_COPPS_PER_PORT)) {
1821 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001822 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301823 mutex_unlock(&routing_lock);
1824 return -EINVAL;
1825 }
1826 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1827 __func__, fedai_id, session_type, i);
1828 set_bit(copp_idx,
1829 &session_copp_map[fedai_id][session_type][i]);
1830
1831 if (msm_is_resample_needed(
1832 sample_rate,
1833 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301834 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301835 msm_bedais[i].sample_rate);
1836
1837 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1838 unsigned long copp =
1839 session_copp_map[fedai_id][session_type][i];
1840 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301841 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301842 payload.copp_idx[num_copps] = j;
1843 payload.app_type[num_copps] =
1844 fe_dai_app_type_cfg
1845 [fedai_id][session_type]
1846 [i].app_type;
1847 payload.acdb_dev_id[num_copps] =
1848 fe_dai_app_type_cfg
1849 [fedai_id][session_type]
1850 [i].acdb_dev_id;
1851 payload.sample_rate[num_copps] =
1852 fe_dai_app_type_cfg
1853 [fedai_id][session_type]
1854 [i].sample_rate;
1855 num_copps++;
1856 }
1857 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301858 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301859 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1860 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301861 }
1862 }
1863 if (num_copps) {
1864 payload.num_copps = num_copps;
1865 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1866 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1867 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1868 }
1869
1870 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1871 dspst_id, stream_type);
1872 mutex_unlock(&routing_lock);
1873 return ret;
1874}
1875
1876int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1877 int dspst_id, int stream_type,
1878 struct msm_pcm_routing_evt event_info)
1879{
1880 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1881 stream_type)) {
1882 pr_err("%s: failed to reg phy stream\n", __func__);
1883 return -EINVAL;
1884 }
1885
1886 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1887 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1888 else
1889 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1890 return 0;
1891}
1892
1893void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1894{
Surendar Karkae7507512018-07-20 15:46:54 +05301895 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301896 struct msm_pcm_routing_fdai_data *fdai;
1897
1898 if (!is_mm_lsm_fe_id(fedai_id)) {
1899 /* bad ID assigned in machine driver */
1900 pr_err("%s: bad MM ID\n", __func__);
1901 return;
1902 }
1903
1904 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1905 port_type = MSM_AFE_PORT_TYPE_RX;
1906 session_type = SESSION_TYPE_RX;
1907 path_type = ADM_PATH_PLAYBACK;
1908 } else {
1909 port_type = MSM_AFE_PORT_TYPE_TX;
1910 session_type = SESSION_TYPE_TX;
1911 path_type = ADM_PATH_LIVE_REC;
1912 }
1913
1914 mutex_lock(&routing_lock);
1915 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1916 if (!is_be_dai_extproc(i) &&
1917 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1918 (msm_bedais[i].active) &&
1919 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1920 int idx;
1921 unsigned long copp =
1922 session_copp_map[fedai_id][session_type][i];
1923 fdai = &fe_dai_map[fedai_id][session_type];
1924
1925 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1926 if (test_bit(idx, &copp))
1927 break;
1928
1929 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1930 pr_debug("%s: copp idx is invalid, exiting\n",
1931 __func__);
1932 continue;
1933 }
Surendar Karkae7507512018-07-20 15:46:54 +05301934 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301935 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301936 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001937 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301938 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301939 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1940 __func__, copp, fedai_id, session_type, i);
1941 clear_bit(idx,
1942 &session_copp_map[fedai_id][session_type][i]);
1943 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1944 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1945 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301946 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301947 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301948 }
1949 }
1950
1951 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1952 fe_dai_map[fedai_id][session_type].be_srate = 0;
1953 mutex_unlock(&routing_lock);
1954}
1955
1956/* Check if FE/BE route is set */
1957static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1958{
1959 bool rc = false;
1960
1961 if (!is_mm_lsm_fe_id(fe_id)) {
1962 /* recheck FE ID in the mixer control defined in this file */
1963 pr_err("%s: bad MM ID\n", __func__);
1964 return rc;
1965 }
1966
1967 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1968 rc = true;
1969
1970 return rc;
1971}
1972
1973static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1974{
1975 int session_type, path_type, topology;
1976 u32 channels, sample_rate;
1977 uint16_t bits_per_sample = 16;
1978 struct msm_pcm_routing_fdai_data *fdai;
1979 uint32_t passthr_mode;
1980 bool is_lsm;
1981
1982 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1983
1984 if (!is_mm_lsm_fe_id(val)) {
1985 /* recheck FE ID in the mixer control defined in this file */
1986 pr_err("%s: bad MM ID\n", __func__);
1987 return;
1988 }
1989
1990 if (!route_check_fe_id_adm_support(val)) {
1991 /* ignore adm open if not supported for fe_id */
1992 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1993 return;
1994 }
1995
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301996 session_type =
1997 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
1998 SESSION_TYPE_RX : SESSION_TYPE_TX;
1999 fdai = &fe_dai_map[val][session_type];
2000 passthr_mode = fdai->passthr_mode;
2001 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302002 if (passthr_mode != LEGACY_PCM)
2003 path_type = ADM_PATH_COMPRESSED_RX;
2004 else
2005 path_type = ADM_PATH_PLAYBACK;
2006 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002007 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302008 path_type = ADM_PATH_COMPRESSED_TX;
2009 else
2010 path_type = ADM_PATH_LIVE_REC;
2011 }
2012 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2013 (val <= MSM_FRONTEND_DAI_LSM8);
2014
2015 mutex_lock(&routing_lock);
2016 if (set) {
2017 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2018 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2019 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2020 voc_start_playback(set, msm_bedais[reg].port_id);
2021
2022 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302023 if (msm_bedais[reg].active && fdai->strm_id !=
2024 INVALID_SESSION) {
2025 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302026 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302027 /*
2028 * check if ADM needs to be configured with different
2029 * channel mapping than backend
2030 */
2031 if (!msm_bedais[reg].adm_override_ch)
2032 channels = msm_bedais[reg].channel;
2033 else
2034 channels = msm_bedais[reg].adm_override_ch;
2035 if (session_type == SESSION_TYPE_TX &&
2036 fdai->be_srate &&
2037 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2038 pr_debug("%s: flush strm %d diff BE rates\n",
2039 __func__, fdai->strm_id);
2040
2041 if (fdai->event_info.event_func)
2042 fdai->event_info.event_func(
2043 MSM_PCM_RT_EVT_BUF_RECFG,
2044 fdai->event_info.priv_data);
2045 fdai->be_srate = 0; /* might not need it */
2046 }
2047
2048 bits_per_sample = msm_routing_get_bit_width(
2049 msm_bedais[reg].format);
2050
2051 app_type =
2052 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2053 if (app_type && is_lsm) {
2054 app_type_idx =
2055 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2056 sample_rate =
2057 fe_dai_app_type_cfg[val][session_type][reg]
2058 .sample_rate;
2059 bits_per_sample =
2060 lsm_app_type_cfg[app_type_idx].bit_width;
2061 } else if (app_type) {
2062 app_type_idx =
2063 msm_pcm_routing_get_app_type_idx(app_type);
2064 sample_rate =
2065 fe_dai_app_type_cfg[val][session_type][reg]
2066 .sample_rate;
2067 bits_per_sample =
2068 app_type_cfg[app_type_idx].bit_width;
2069 } else
2070 sample_rate = msm_bedais[reg].sample_rate;
2071
2072 topology = msm_routing_get_adm_topology(val,
2073 session_type,
2074 reg);
2075 acdb_dev_id =
2076 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302077 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302078 sample_rate, channels, topology,
2079 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302080 app_type, acdb_dev_id,
2081 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302082 if ((copp_idx < 0) ||
2083 (copp_idx >= MAX_COPPS_PER_PORT)) {
2084 pr_err("%s: adm open failed\n", __func__);
2085 mutex_unlock(&routing_lock);
2086 return;
2087 }
2088 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2089 __func__, val, session_type, reg);
2090 set_bit(copp_idx,
2091 &session_copp_map[val][session_type][reg]);
2092
2093 if (msm_is_resample_needed(
2094 sample_rate,
2095 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302096 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302097 msm_bedais[reg].sample_rate);
2098
2099 if (session_type == SESSION_TYPE_RX &&
2100 fdai->event_info.event_func)
2101 fdai->event_info.event_func(
2102 MSM_PCM_RT_EVT_DEVSWITCH,
2103 fdai->event_info.priv_data);
2104
2105 msm_pcm_routing_build_matrix(val, session_type,
2106 path_type,
2107 fdai->perf_mode,
2108 passthr_mode);
2109 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2110 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302111 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2112 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302113 }
2114 } else {
2115 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2116 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2117 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2118 voc_start_playback(set, msm_bedais[reg].port_id);
2119 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302120 if (msm_bedais[reg].active && fdai->strm_id !=
2121 INVALID_SESSION) {
2122 int idx;
2123 int port_id;
2124 unsigned long copp =
2125 session_copp_map[val][session_type][reg];
2126 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2127 if (test_bit(idx, &copp))
2128 break;
2129
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002130 if (idx >= MAX_COPPS_PER_PORT) {
2131 pr_debug("%s: copp idx is invalid, exiting\n",
2132 __func__);
2133 mutex_unlock(&routing_lock);
2134 return;
2135 }
Surendar Karkae7507512018-07-20 15:46:54 +05302136 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302137 topology = adm_get_topology_for_port_copp_idx(port_id,
2138 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002139 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302140 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302141 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2142 __func__, copp, val, session_type, reg,
2143 topology);
2144 clear_bit(idx,
2145 &session_copp_map[val][session_type][reg]);
2146 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2147 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2148 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2149 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302150 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302151 msm_pcm_routing_build_matrix(val, session_type,
2152 path_type,
2153 fdai->perf_mode,
2154 passthr_mode);
2155 }
2156 }
2157 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2158 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2159 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2160
2161 mutex_unlock(&routing_lock);
2162}
2163
2164static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2165 struct snd_ctl_elem_value *ucontrol)
2166{
2167 struct soc_mixer_control *mc =
2168 (struct soc_mixer_control *)kcontrol->private_value;
2169
Meng Wang05d5e9a2018-03-28 16:45:03 +08002170 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302171 ucontrol->value.integer.value[0] = 1;
2172 else
2173 ucontrol->value.integer.value[0] = 0;
2174
Meng Wang05d5e9a2018-03-28 16:45:03 +08002175 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302176 ucontrol->value.integer.value[0]);
2177
2178 return 0;
2179}
2180
2181static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2182 struct snd_ctl_elem_value *ucontrol)
2183{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302184 struct snd_soc_dapm_widget *widget =
2185 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302186 struct soc_mixer_control *mc =
2187 (struct soc_mixer_control *)kcontrol->private_value;
2188 struct snd_soc_dapm_update *update = NULL;
2189
2190 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002191 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2192 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302193 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2194 update);
2195 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002196 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2197 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302198 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2199 update);
2200 }
2201
2202 return 1;
2203}
2204
2205static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2206 struct snd_ctl_elem_value *ucontrol)
2207{
2208 struct soc_mixer_control *mc =
2209 (struct soc_mixer_control *)kcontrol->private_value;
2210
Meng Wang05d5e9a2018-03-28 16:45:03 +08002211 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302212 ucontrol->value.integer.value[0] = 1;
2213 else
2214 ucontrol->value.integer.value[0] = 0;
2215
Meng Wang05d5e9a2018-03-28 16:45:03 +08002216 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302217 ucontrol->value.integer.value[0]);
2218
2219 return 0;
2220}
2221
2222static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2223 struct snd_ctl_elem_value *ucontrol)
2224{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302225 struct snd_soc_dapm_widget *widget =
2226 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302227 struct soc_mixer_control *mc =
2228 (struct soc_mixer_control *)kcontrol->private_value;
2229 struct snd_soc_dapm_update *update = NULL;
2230
Meng Wang05d5e9a2018-03-28 16:45:03 +08002231 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302232 ucontrol->value.integer.value[0]);
2233
2234 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002235 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2236 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302237 snd_soc_dapm_mixer_update_power(widget->dapm,
2238 kcontrol, 1, update);
2239 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002240 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2241 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302242 snd_soc_dapm_mixer_update_power(widget->dapm,
2243 kcontrol, 0, update);
2244 }
2245
2246 return 1;
2247}
2248
2249static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2250{
2251 u32 session_id = 0;
2252 u16 path_type;
2253 struct media_format_info voc_be_media_format;
2254
2255 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2256
2257 session_id = msm_pcm_routing_get_voc_sessionid(val);
2258
2259 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2260 __func__, val, session_id);
2261
2262 mutex_lock(&routing_lock);
2263
2264 if (set)
2265 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2266 else
2267 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2268
2269 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2270 afe_get_port_type(msm_bedais[reg].port_id) ==
2271 MSM_AFE_PORT_TYPE_RX) {
2272 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2273 __func__, set, msm_bedais[reg].port_id);
2274 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2275 }
2276
2277 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2278 MSM_AFE_PORT_TYPE_RX)
2279 path_type = RX_PATH;
2280 else
2281 path_type = TX_PATH;
2282
2283 if (set) {
2284 if (msm_bedais[reg].active) {
2285 voc_set_route_flag(session_id, path_type, 1);
2286
2287 memset(&voc_be_media_format, 0,
2288 sizeof(struct media_format_info));
2289
2290 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2291 voc_be_media_format.num_channels =
2292 msm_bedais[reg].channel;
2293 voc_be_media_format.sample_rate =
2294 msm_bedais[reg].sample_rate;
2295 voc_be_media_format.bits_per_sample =
2296 msm_bedais[reg].format;
2297 /* Defaulting this to 1 for voice call usecases */
2298 voc_be_media_format.channel_mapping[0] = 1;
2299
2300 voc_set_device_config(session_id, path_type,
2301 &voc_be_media_format);
2302
2303 if (voc_get_route_flag(session_id, TX_PATH) &&
2304 voc_get_route_flag(session_id, RX_PATH))
2305 voc_enable_device(session_id);
2306 } else {
2307 pr_debug("%s BE is not active\n", __func__);
2308 }
2309 } else {
2310 voc_set_route_flag(session_id, path_type, 0);
2311 voc_disable_device(session_id);
2312 }
2313
2314 mutex_unlock(&routing_lock);
2315
2316}
2317
2318static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2319 struct snd_ctl_elem_value *ucontrol)
2320{
2321 struct soc_mixer_control *mc =
2322 (struct soc_mixer_control *)kcontrol->private_value;
2323
2324 mutex_lock(&routing_lock);
2325
Meng Wang05d5e9a2018-03-28 16:45:03 +08002326 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302327 ucontrol->value.integer.value[0] = 1;
2328 else
2329 ucontrol->value.integer.value[0] = 0;
2330
2331 mutex_unlock(&routing_lock);
2332
Meng Wang05d5e9a2018-03-28 16:45:03 +08002333 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302334 ucontrol->value.integer.value[0]);
2335
2336 return 0;
2337}
2338
2339static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2340 struct snd_ctl_elem_value *ucontrol)
2341{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302342 struct snd_soc_dapm_widget *widget =
2343 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302344 struct soc_mixer_control *mc =
2345 (struct soc_mixer_control *)kcontrol->private_value;
2346 struct snd_soc_dapm_update *update = NULL;
2347
2348 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002349 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302350 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2351 update);
2352 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002353 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302354 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2355 update);
2356 }
2357
2358 return 1;
2359}
2360
2361static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2362 struct snd_ctl_elem_value *ucontrol)
2363{
2364 struct soc_mixer_control *mc =
2365 (struct soc_mixer_control *)kcontrol->private_value;
2366
2367 mutex_lock(&routing_lock);
2368
Meng Wang05d5e9a2018-03-28 16:45:03 +08002369 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302370 ucontrol->value.integer.value[0] = 1;
2371 else
2372 ucontrol->value.integer.value[0] = 0;
2373
2374 mutex_unlock(&routing_lock);
2375
Meng Wang05d5e9a2018-03-28 16:45:03 +08002376 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302377 ucontrol->value.integer.value[0]);
2378
2379 return 0;
2380}
2381
2382static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2383 struct snd_ctl_elem_value *ucontrol)
2384{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302385 struct snd_soc_dapm_widget *widget =
2386 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302387 struct soc_mixer_control *mc =
2388 (struct soc_mixer_control *)kcontrol->private_value;
2389 struct snd_soc_dapm_update *update = NULL;
2390
2391 if (ucontrol->value.integer.value[0]) {
2392 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002393 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302394 mutex_unlock(&routing_lock);
2395
2396 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2397 update);
2398 } else {
2399 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002400 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302401 mutex_unlock(&routing_lock);
2402
2403 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2404 update);
2405 }
2406
Meng Wang05d5e9a2018-03-28 16:45:03 +08002407 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302408 ucontrol->value.integer.value[0]);
2409
2410 return 1;
2411}
2412
2413/*
2414 * Return the mapping between port ID and backend ID to enable the AFE callback
2415 * to determine the acdb_dev_id from the port id
2416 */
2417int msm_pcm_get_be_id_from_port_id(int port_id)
2418{
2419 int i;
2420 int be_id = -EINVAL;
2421
2422 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2423 if (msm_bedais[i].port_id == port_id) {
2424 be_id = i;
2425 break;
2426 }
2427 }
2428
2429 return be_id;
2430}
2431
2432/*
2433 * Return the registered dev_acdb_id given a port ID to enable identifying the
2434 * correct AFE calibration information by comparing the header information.
2435 */
2436static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2437{
2438 int acdb_id = -EINVAL;
2439 int i = 0;
2440 int session;
2441 int port_type = afe_get_port_type(port_id);
2442 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2443
2444 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2445 __func__, port_id, be_id, port_type);
2446
2447 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2448 session = SESSION_TYPE_TX;
2449 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2450 session = SESSION_TYPE_RX;
2451 } else {
2452 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2453 acdb_id = -EINVAL;
2454 goto exit;
2455 }
2456
2457 if (be_id < 0) {
2458 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2459 goto exit;
2460 }
2461
2462 mutex_lock(&routing_lock);
2463 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2464 MSM_FRONTEND_DAI_MAX);
2465 if (i < MSM_FRONTEND_DAI_MAX)
2466 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2467
2468 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2469 __func__, i, session, be_id, acdb_id);
2470 mutex_unlock(&routing_lock);
2471exit:
2472 return acdb_id;
2473}
2474
2475static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2476 struct snd_ctl_elem_value *ucontrol)
2477{
2478 ucontrol->value.integer.value[0] = fm_switch_enable;
2479 pr_debug("%s: FM Switch enable %ld\n", __func__,
2480 ucontrol->value.integer.value[0]);
2481 return 0;
2482}
2483
2484static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2485 struct snd_ctl_elem_value *ucontrol)
2486{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302487 struct snd_soc_dapm_widget *widget =
2488 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302489 struct snd_soc_dapm_update *update = NULL;
2490
2491 pr_debug("%s: FM Switch enable %ld\n", __func__,
2492 ucontrol->value.integer.value[0]);
2493 if (ucontrol->value.integer.value[0])
2494 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2495 update);
2496 else
2497 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2498 update);
2499 fm_switch_enable = ucontrol->value.integer.value[0];
2500 return 1;
2501}
2502
2503static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2504 struct snd_ctl_elem_value *ucontrol)
2505{
2506 ucontrol->value.integer.value[0] = hfp_switch_enable;
2507 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2508 ucontrol->value.integer.value[0]);
2509 return 0;
2510}
2511
2512static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2513 struct snd_ctl_elem_value *ucontrol)
2514{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302515 struct snd_soc_dapm_widget *widget =
2516 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302517 struct snd_soc_dapm_update *update = NULL;
2518
2519 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2520 ucontrol->value.integer.value[0]);
2521 if (ucontrol->value.integer.value[0])
2522 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2523 1, update);
2524 else
2525 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2526 0, update);
2527 hfp_switch_enable = ucontrol->value.integer.value[0];
2528 return 1;
2529}
2530
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002531static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2532 struct snd_ctl_elem_value *ucontrol)
2533{
2534 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2535 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2536 ucontrol->value.integer.value[0]);
2537 return 0;
2538}
2539
2540static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2541 struct snd_ctl_elem_value *ucontrol)
2542{
2543 struct snd_soc_dapm_widget *widget =
2544 snd_soc_dapm_kcontrol_widget(kcontrol);
2545 struct snd_soc_dapm_update *update = NULL;
2546
2547 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2548 ucontrol->value.integer.value[0]);
2549 a2dp_switch_enable = ucontrol->value.integer.value[0];
2550 if (a2dp_switch_enable)
2551 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2552 1, update);
2553 else
2554 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2555 0, update);
2556 return 1;
2557}
2558
Zhou Songcaa541d2019-02-19 18:37:47 +08002559static int msm_routing_sco_switch_mixer_get(struct snd_kcontrol *kcontrol,
2560 struct snd_ctl_elem_value *ucontrol)
2561{
2562 ucontrol->value.integer.value[0] = sco_switch_enable;
2563 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2564 ucontrol->value.integer.value[0]);
2565 return 0;
2566}
2567
2568static int msm_routing_sco_switch_mixer_put(struct snd_kcontrol *kcontrol,
2569 struct snd_ctl_elem_value *ucontrol)
2570{
2571 struct snd_soc_dapm_widget *widget =
2572 snd_soc_dapm_kcontrol_widget(kcontrol);
2573 struct snd_soc_dapm_update *update = NULL;
2574
2575 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2576 ucontrol->value.integer.value[0]);
2577 sco_switch_enable = ucontrol->value.integer.value[0];
2578 if (sco_switch_enable)
2579 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2580 1, update);
2581 else
2582 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2583 0, update);
2584 return 1;
2585}
2586
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302587static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2588 struct snd_ctl_elem_value *ucontrol)
2589{
2590 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2591 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2592 ucontrol->value.integer.value[0]);
2593 return 0;
2594}
2595
2596static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2597 struct snd_ctl_elem_value *ucontrol)
2598{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302599 struct snd_soc_dapm_widget *widget =
2600 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302601 struct snd_soc_dapm_update *update = NULL;
2602
2603 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2604 ucontrol->value.integer.value[0]);
2605 if (ucontrol->value.integer.value[0])
2606 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2607 update);
2608 else
2609 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2610 update);
2611 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2612 return 1;
2613}
2614
2615static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2616 struct snd_ctl_elem_value *ucontrol)
2617{
2618 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2619 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2620 ucontrol->value.integer.value[0]);
2621 return 0;
2622}
2623
2624static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2625 struct snd_ctl_elem_value *ucontrol)
2626{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302627 struct snd_soc_dapm_widget *widget =
2628 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302629 struct snd_soc_dapm_update *update = NULL;
2630
2631 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2632 ucontrol->value.integer.value[0]);
2633 if (ucontrol->value.integer.value[0])
2634 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2635 update);
2636 else
2637 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2638 update);
2639 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2640 return 1;
2641}
2642
2643static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2644 struct snd_ctl_elem_value *ucontrol)
2645{
2646 ucontrol->value.integer.value[0] = usb_switch_enable;
2647 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2648 ucontrol->value.integer.value[0]);
2649 return 0;
2650}
2651
2652static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2653 struct snd_ctl_elem_value *ucontrol)
2654{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302655 struct snd_soc_dapm_widget *widget =
2656 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302657 struct snd_soc_dapm_update *update = NULL;
2658
2659 pr_debug("%s: USB Switch enable %ld\n", __func__,
2660 ucontrol->value.integer.value[0]);
2661 if (ucontrol->value.integer.value[0])
2662 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2663 1, update);
2664 else
2665 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2666 0, update);
2667 usb_switch_enable = ucontrol->value.integer.value[0];
2668 return 1;
2669}
2670
2671static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2672 struct snd_ctl_elem_value *ucontrol)
2673{
2674 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2675 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2676 ucontrol->value.integer.value[0]);
2677 return 0;
2678}
2679
2680static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2681 struct snd_ctl_elem_value *ucontrol)
2682{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302683 struct snd_soc_dapm_widget *widget =
2684 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302685 struct snd_soc_dapm_update *update = NULL;
2686
2687 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2688 ucontrol->value.integer.value[0]);
2689 if (ucontrol->value.integer.value[0])
2690 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2691 update);
2692 else
2693 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2694 update);
2695 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2696 return 1;
2697}
2698
2699static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2700 struct snd_ctl_elem_value *ucontrol)
2701{
2702 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2703 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2704 ucontrol->value.integer.value[0]);
2705 return 0;
2706}
2707
2708static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2709 struct snd_ctl_elem_value *ucontrol)
2710{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302711 struct snd_soc_dapm_widget *widget =
2712 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302713 struct snd_soc_dapm_update *update = NULL;
2714
2715 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2716 ucontrol->value.integer.value[0]);
2717 if (ucontrol->value.integer.value[0])
2718 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2719 update);
2720 else
2721 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2722 update);
2723 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2724 return 1;
2725}
2726
2727static int msm_routing_get_tert_mi2s_switch_mixer(
2728 struct snd_kcontrol *kcontrol,
2729 struct snd_ctl_elem_value *ucontrol)
2730{
2731 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2732 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2733 ucontrol->value.integer.value[0]);
2734 return 0;
2735}
2736
2737static int msm_routing_put_tert_mi2s_switch_mixer(
2738 struct snd_kcontrol *kcontrol,
2739 struct snd_ctl_elem_value *ucontrol)
2740{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302741 struct snd_soc_dapm_widget *widget =
2742 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302743 struct snd_soc_dapm_update *update = NULL;
2744
2745 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2746 ucontrol->value.integer.value[0]);
2747 if (ucontrol->value.integer.value[0])
2748 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2749 update);
2750 else
2751 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2752 update);
2753 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2754 return 1;
2755}
2756
2757static int msm_routing_get_quat_mi2s_switch_mixer(
2758 struct snd_kcontrol *kcontrol,
2759 struct snd_ctl_elem_value *ucontrol)
2760{
2761 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2762 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2763 ucontrol->value.integer.value[0]);
2764 return 0;
2765}
2766
2767static int msm_routing_put_quat_mi2s_switch_mixer(
2768 struct snd_kcontrol *kcontrol,
2769 struct snd_ctl_elem_value *ucontrol)
2770{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302771 struct snd_soc_dapm_widget *widget =
2772 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302773 struct snd_soc_dapm_update *update = NULL;
2774
2775 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2776 ucontrol->value.integer.value[0]);
2777 if (ucontrol->value.integer.value[0])
2778 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2779 update);
2780 else
2781 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2782 update);
2783 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2784 return 1;
2785}
2786
Rohit Kumara5077932017-09-10 22:05:05 +05302787static int msm_routing_get_quin_mi2s_switch_mixer(
2788 struct snd_kcontrol *kcontrol,
2789 struct snd_ctl_elem_value *ucontrol)
2790{
2791 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2792 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2793 ucontrol->value.integer.value[0]);
2794 return 0;
2795}
2796
2797static int msm_routing_put_quin_mi2s_switch_mixer(
2798 struct snd_kcontrol *kcontrol,
2799 struct snd_ctl_elem_value *ucontrol)
2800{
2801 struct snd_soc_dapm_widget *widget =
2802 snd_soc_dapm_kcontrol_widget(kcontrol);
2803 struct snd_soc_dapm_update *update = NULL;
2804
2805 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2806 ucontrol->value.integer.value[0]);
2807 if (ucontrol->value.integer.value[0])
2808 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2809 update);
2810 else
2811 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2812 update);
2813 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2814 return 1;
2815}
2816
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302817static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2818 struct snd_ctl_elem_value *ucontrol)
2819{
2820 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2821 pr_debug("%s: FM Switch enable %ld\n", __func__,
2822 ucontrol->value.integer.value[0]);
2823 return 0;
2824}
2825
2826static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2827 struct snd_ctl_elem_value *ucontrol)
2828{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302829 struct snd_soc_dapm_widget *widget =
2830 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302831 struct snd_soc_dapm_update *update = NULL;
2832
2833 pr_debug("%s: FM Switch enable %ld\n", __func__,
2834 ucontrol->value.integer.value[0]);
2835 if (ucontrol->value.integer.value[0])
2836 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2837 update);
2838 else
2839 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2840 update);
2841 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2842 return 1;
2843}
2844
2845static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2846 struct snd_ctl_elem_value *ucontrol)
2847{
2848 ucontrol->value.integer.value[0] = lsm_port_index;
2849 return 0;
2850}
2851
2852static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2853 struct snd_ctl_elem_value *ucontrol)
2854{
2855 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2856 int mux = ucontrol->value.enumerated.item[0];
2857 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2858
2859 if (mux >= e->items) {
2860 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2861 return -EINVAL;
2862 }
2863
2864 pr_debug("%s: LSM enable %ld\n", __func__,
2865 ucontrol->value.integer.value[0]);
2866 switch (ucontrol->value.integer.value[0]) {
2867 case 1:
2868 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2869 break;
2870 case 2:
2871 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2872 break;
2873 case 3:
2874 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2875 break;
2876 case 4:
2877 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2878 break;
2879 case 5:
2880 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2881 break;
2882 case 6:
2883 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2884 break;
2885 case 7:
2886 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2887 break;
2888 case 8:
2889 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2890 break;
2891 case 9:
2892 lsm_port = ADM_LSM_PORT_ID;
2893 break;
2894 case 10:
2895 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2896 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302897 case 11:
2898 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2899 break;
2900 case 12:
2901 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2902 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302903 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002904 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302905 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302906 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002907 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2908 break;
2909 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302910 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2911 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302912 default:
2913 pr_err("Default lsm port");
2914 break;
2915 }
2916 set_lsm_port(lsm_port);
2917 lsm_port_index = ucontrol->value.integer.value[0];
2918
2919 return 0;
2920}
2921
2922static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2923 struct snd_ctl_elem_value *ucontrol)
2924{
2925 int i;
2926 u16 port_id;
2927 enum afe_mad_type mad_type;
2928
2929 pr_debug("%s: enter\n", __func__);
2930 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2931 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2932 strlen(lsm_port_text[i])))
2933 break;
2934
2935 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002936 pr_warn("%s: Invalid id name %s\n", __func__,
2937 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302938 return -EINVAL;
2939 }
2940
2941 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2942
2943 /*Check for Tertiary/Quaternary/INT3 TX port*/
2944 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2945 strlen(lsm_port_text[7])))
2946 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2947
2948 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2949 strlen(lsm_port_text[8])))
2950 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2951
2952 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2953 strlen(lsm_port_text[10])))
2954 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2955
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302956 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2957 strlen(lsm_port_text[13])))
2958 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2959
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302960 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2961 strlen(lsm_port_text[14])))
2962 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2963
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302964 mad_type = afe_port_get_mad_type(port_id);
2965 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2966 mad_type);
2967 switch (mad_type) {
2968 case MAD_HW_NONE:
2969 ucontrol->value.integer.value[0] = MADNONE;
2970 break;
2971 case MAD_HW_AUDIO:
2972 ucontrol->value.integer.value[0] = MADAUDIO;
2973 break;
2974 case MAD_HW_BEACON:
2975 ucontrol->value.integer.value[0] = MADBEACON;
2976 break;
2977 case MAD_HW_ULTRASOUND:
2978 ucontrol->value.integer.value[0] = MADULTRASOUND;
2979 break;
2980 case MAD_SW_AUDIO:
2981 ucontrol->value.integer.value[0] = MADSWAUDIO;
2982 break;
2983 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002984 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302985 return -EINVAL;
2986 }
2987 return 0;
2988}
2989
2990static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2991 struct snd_ctl_elem_value *ucontrol)
2992{
2993 int i;
2994 u16 port_id;
2995 enum afe_mad_type mad_type;
2996
2997 pr_debug("%s: enter\n", __func__);
2998 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2999 if (strnstr(kcontrol->id.name, lsm_port_text[i],
3000 strlen(lsm_port_text[i])))
3001 break;
3002
3003 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003004 pr_warn("%s: Invalid id name %s\n", __func__,
3005 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303006 return -EINVAL;
3007 }
3008
3009 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3010 switch (ucontrol->value.integer.value[0]) {
3011 case MADNONE:
3012 mad_type = MAD_HW_NONE;
3013 break;
3014 case MADAUDIO:
3015 mad_type = MAD_HW_AUDIO;
3016 break;
3017 case MADBEACON:
3018 mad_type = MAD_HW_BEACON;
3019 break;
3020 case MADULTRASOUND:
3021 mad_type = MAD_HW_ULTRASOUND;
3022 break;
3023 case MADSWAUDIO:
3024 mad_type = MAD_SW_AUDIO;
3025 break;
3026 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003027 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303028 return -EINVAL;
3029 }
3030
3031 /*Check for Tertiary/Quaternary/INT3 TX port*/
3032 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3033 strlen(lsm_port_text[7])))
3034 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3035
3036 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3037 strlen(lsm_port_text[8])))
3038 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3039
3040 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3041 strlen(lsm_port_text[10])))
3042 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3043
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303044 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3045 strlen(lsm_port_text[13])))
3046 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3047
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303048 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3049 strlen(lsm_port_text[14])))
3050 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3051
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303052 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3053 mad_type);
3054 return afe_port_set_mad_type(port_id, mad_type);
3055}
3056
3057static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3058
3059static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
3060 adm_override_chs_text);
3061
3062static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3063{
3064 int backend_id;
3065
3066 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3067 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
3068 } else {
3069 pr_err("%s: unsupported backend id: %s",
3070 __func__, kcontrol->id.name);
3071 return -EINVAL;
3072 }
3073
3074 return backend_id;
3075}
3076static int msm_routing_adm_channel_config_get(
3077 struct snd_kcontrol *kcontrol,
3078 struct snd_ctl_elem_value *ucontrol)
3079{
3080 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3081
3082 if (backend_id >= 0) {
3083 mutex_lock(&routing_lock);
3084 ucontrol->value.integer.value[0] =
3085 msm_bedais[backend_id].adm_override_ch;
3086 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3087 ucontrol->value.integer.value[0], backend_id);
3088 mutex_unlock(&routing_lock);
3089 }
3090
3091 return 0;
3092}
3093
3094static int msm_routing_adm_channel_config_put(
3095 struct snd_kcontrol *kcontrol,
3096 struct snd_ctl_elem_value *ucontrol)
3097{
3098 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3099
3100 if (backend_id >= 0) {
3101 mutex_lock(&routing_lock);
3102 msm_bedais[backend_id].adm_override_ch =
3103 ucontrol->value.integer.value[0];
3104 pr_debug("%s:updating BE :%d adm channels: %d\n",
3105 __func__, backend_id,
3106 msm_bedais[backend_id].adm_override_ch);
3107 mutex_unlock(&routing_lock);
3108 }
3109
3110 return 0;
3111}
3112
3113static const struct snd_kcontrol_new adm_channel_config_controls[] = {
3114 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
3115 msm_routing_adm_channel_config_get,
3116 msm_routing_adm_channel_config_put),
3117};
3118
3119static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3120 struct snd_ctl_elem_value *ucontrol)
3121{
3122
3123 mutex_lock(&routing_lock);
3124 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3125 mutex_unlock(&routing_lock);
3126 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3127 ucontrol->value.integer.value[0]);
3128 return 0;
3129};
3130
3131static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3132 struct snd_ctl_elem_value *ucontrol)
3133{
3134 struct aanc_data aanc_info;
3135
3136 mutex_lock(&routing_lock);
3137 memset(&aanc_info, 0x00, sizeof(aanc_info));
3138 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3139 ucontrol->value.integer.value[0]);
3140 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3141 if (ucontrol->value.integer.value[0] == 0) {
3142 aanc_info.aanc_active = false;
3143 aanc_info.aanc_tx_port = 0;
3144 aanc_info.aanc_rx_port = 0;
3145 } else {
3146 aanc_info.aanc_active = true;
3147 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3148 aanc_info.aanc_tx_port =
3149 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3150 }
3151 afe_set_aanc_info(&aanc_info);
3152 mutex_unlock(&routing_lock);
3153 return 0;
3154};
3155static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3156 struct snd_ctl_elem_value *ucontrol)
3157{
3158 int idx = 0, shift = 0;
3159 struct soc_mixer_control *mc =
3160 (struct soc_mixer_control *)kcontrol->private_value;
3161
Meng Wang05d5e9a2018-03-28 16:45:03 +08003162 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3163 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303164
3165 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3166 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3167 return -EINVAL;
3168 }
3169
3170 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003171 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303172 ucontrol->value.integer.value[0] = 1;
3173 else
3174 ucontrol->value.integer.value[0] = 0;
3175
Meng Wang05d5e9a2018-03-28 16:45:03 +08003176 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303177 ucontrol->value.integer.value[0]);
3178
3179 return 0;
3180}
3181
3182static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3183 struct snd_ctl_elem_value *ucontrol)
3184{
3185 int idx = 0, shift = 0;
3186 struct soc_mixer_control *mc =
3187 (struct soc_mixer_control *)kcontrol->private_value;
3188
Meng Wang05d5e9a2018-03-28 16:45:03 +08003189 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3190 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303191
3192 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3193 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3194 return -EINVAL;
3195 }
3196
Meng Wang05d5e9a2018-03-28 16:45:03 +08003197 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3198 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303199 ucontrol->value.integer.value[0], idx, shift);
3200
3201 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003202 afe_loopback(1, msm_bedais[mc->shift].port_id,
3203 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303204 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003205 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303206 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003207 afe_loopback(0, msm_bedais[mc->shift].port_id,
3208 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303209 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003210 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303211 }
3212
3213 return 1;
3214}
3215
3216static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3217 struct snd_ctl_elem_value *ucontrol)
3218{
3219 u16 fe_id = 0;
3220
3221 fe_id = ((struct soc_mixer_control *)
3222 kcontrol->private_value)->shift;
3223 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3224 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3225 return -EINVAL;
3226 }
3227
3228 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3229
3230 return 0;
3231}
3232
3233static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3234 struct snd_ctl_elem_value *ucontrol)
3235{
3236 u16 fe_id = 0;
3237
3238 fe_id = ((struct soc_mixer_control *)
3239 kcontrol->private_value)->shift;
3240 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3241 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3242 return -EINVAL;
3243 }
3244
3245 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3246
3247 return 1;
3248}
3249
3250static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3251 struct snd_ctl_elem_value *ucontrol)
3252{
3253 u16 fe_id = 0;
3254
3255 fe_id = ((struct soc_multi_mixer_control *)
3256 kcontrol->private_value)->shift;
3257 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3258 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3259 return -EINVAL;
3260 }
3261
3262 ucontrol->value.integer.value[0] =
3263 channel_mixer[fe_id].output_channel;
3264 return 0;
3265}
3266
3267static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3268 struct snd_ctl_elem_value *ucontrol)
3269{
3270 u16 fe_id = 0;
3271
3272 fe_id = ((struct soc_multi_mixer_control *)
3273 kcontrol->private_value)->shift;
3274 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3275 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3276 return -EINVAL;
3277 }
3278
3279 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3280 fe_id,
3281 (unsigned int)(ucontrol->value.integer.value[0]));
3282 channel_mixer[fe_id].output_channel =
3283 (unsigned int)(ucontrol->value.integer.value[0]);
3284
3285 return 1;
3286}
3287
3288static const char *const ch_mixer[] = {"Disable", "Enable"};
3289
3290/* If new backend is added, need update this array */
3291static const char *const be_name[] = {
3292"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3293"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3294"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3295"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3296"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3297"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3298"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3299"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3300"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3301"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3302"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3303"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003304"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303305"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3306"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3307"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3308"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3309"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3310"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3311"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3312"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3313"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3314"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3315"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3316"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3317"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3318"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3319"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3320"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3321"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303322"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3323"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3324"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3325"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003326"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3327"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3328"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3329"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3330"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3331"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3332"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3333"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 -08003334"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 +05303335"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3336"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3337"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3338"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3339"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Meng Wangf016d302019-01-21 10:35:53 +08003340"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303341};
3342
3343static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3344 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3345static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3346 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3347static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3348 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3349static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3350 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3351
3352static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3353 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3354static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3355 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3356static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3357 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3358static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3359 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3360static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3361 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3362static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3363 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3364static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3365 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3366static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3367 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3368
3369static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3370 unsigned int channels,
3371 unsigned int items, const char *const names[])
3372{
3373 if (uinfo->value.enumerated.item >= items)
3374 uinfo->value.enumerated.item = items - 1;
3375
3376 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3377 sizeof(uinfo->value.enumerated.name),
3378 "ALSA: too long item name '%s'\n",
3379 names[uinfo->value.enumerated.item]);
3380 strlcpy(uinfo->value.enumerated.name,
3381 names[uinfo->value.enumerated.item],
3382 sizeof(uinfo->value.enumerated.name));
3383 return 0;
3384}
3385
3386static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3387 struct snd_ctl_elem_info *uinfo)
3388{
3389 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3390
3391 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3392 uinfo->count = 1;
3393
3394 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3395 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3396
3397 return 0;
3398}
3399static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3400 struct snd_ctl_elem_value *ucontrol)
3401{
3402 u16 fe_id = 0;
3403
3404 fe_id = ((struct soc_enum *)
3405 kcontrol->private_value)->shift_l;
3406 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3407 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3408 return -EINVAL;
3409 }
3410
3411 pr_debug("%s: FE %d %s\n", __func__,
3412 fe_id,
3413 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3414 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3415 return 0;
3416}
3417
3418static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3419 struct snd_ctl_elem_value *ucontrol)
3420{
3421 u16 fe_id = 0;
3422
3423 fe_id = ((struct soc_enum *)
3424 kcontrol->private_value)->shift_l;
3425 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3426 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3427 return -EINVAL;
3428 }
3429
3430 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3431 pr_debug("%s: %s FE %d\n", __func__,
3432 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3433 fe_id);
3434 return 0;
3435}
3436
3437static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3438 struct snd_ctl_elem_info *uinfo)
3439{
3440 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3441
3442 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3443 uinfo->count = 1;
3444
3445 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3446 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3447
3448 return 0;
3449}
3450
3451static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3452 struct snd_ctl_elem_value *ucontrol)
3453{
3454 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3455 u16 fe_id = 0, in_ch = 0;
3456
3457 fe_id = e->shift_l;
3458 in_ch = e->shift_r;
3459 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3460 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3461 return -EINVAL;
3462 }
3463 if (in_ch >= ADM_MAX_CHANNELS) {
3464 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3465 return -EINVAL;
3466 }
3467
3468 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3469 return 1;
3470}
3471
3472static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3473 struct snd_ctl_elem_value *ucontrol)
3474{
3475 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3476 u16 fe_id = 0, in_ch = 0;
3477
3478 fe_id = e->shift_l;
3479 in_ch = e->shift_r;
3480 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3481 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3482 return -EINVAL;
3483 }
3484 if (in_ch >= ADM_MAX_CHANNELS) {
3485 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3486 return -EINVAL;
3487 }
3488
3489 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3490 return 1;
3491}
3492
3493
3494static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3495 struct snd_ctl_elem_info *uinfo)
3496{
3497 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3498 uinfo->count = ADM_MAX_CHANNELS;
3499 uinfo->value.integer.min = 0;
3500 uinfo->value.integer.max = WEIGHT_0_DB;
3501
3502 return 0;
3503}
3504
3505static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3506 struct snd_ctl_elem_value *ucontrol)
3507{
3508 u16 fe_id = 0, out_ch = 0;
3509 int i, weight;
3510
3511 fe_id = ((struct soc_multi_mixer_control *)
3512 kcontrol->private_value)->shift;
3513 out_ch = ((struct soc_multi_mixer_control *)
3514 kcontrol->private_value)->rshift;
3515 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3516 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3517 return -EINVAL;
3518 }
3519 if (out_ch >= ADM_MAX_CHANNELS) {
3520 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3521 return -EINVAL;
3522 }
3523
3524 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3525 __func__, fe_id,
3526 ucontrol->value.integer.value[0],
3527 ucontrol->value.integer.value[1],
3528 ucontrol->value.integer.value[2],
3529 ucontrol->value.integer.value[3],
3530 ucontrol->value.integer.value[4],
3531 ucontrol->value.integer.value[5],
3532 ucontrol->value.integer.value[6],
3533 ucontrol->value.integer.value[7]);
3534
3535 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3536 weight = ucontrol->value.integer.value[i];
3537 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3538 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3539 __func__, fe_id, out_ch, i,
3540 channel_mixer[fe_id].channel_weight[out_ch][i]);
3541 }
3542
3543 return 0;
3544}
3545
3546static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3547 struct snd_ctl_elem_value *ucontrol)
3548{
3549 u16 fe_id = 0, out_ch = 0;
3550 int i;
3551
3552 fe_id = ((struct soc_multi_mixer_control *)
3553 kcontrol->private_value)->shift;
3554 out_ch = ((struct soc_multi_mixer_control *)
3555 kcontrol->private_value)->rshift;
3556 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3557 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3558 return -EINVAL;
3559 }
3560 if (out_ch >= ADM_MAX_CHANNELS) {
3561 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3562 return -EINVAL;
3563 }
3564
3565 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3566 ucontrol->value.integer.value[i] =
3567 channel_mixer[fe_id].channel_weight[out_ch][i];
3568
3569 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3570 __func__, fe_id,
3571 ucontrol->value.integer.value[0],
3572 ucontrol->value.integer.value[1],
3573 ucontrol->value.integer.value[2],
3574 ucontrol->value.integer.value[3],
3575 ucontrol->value.integer.value[4],
3576 ucontrol->value.integer.value[5],
3577 ucontrol->value.integer.value[6],
3578 ucontrol->value.integer.value[7]);
3579
3580 return 0;
3581}
3582
3583static const struct snd_kcontrol_new channel_mixer_controls[] = {
3584 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3585 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3586 msm_pcm_get_channel_rule_index,
3587 msm_pcm_put_channel_rule_index),
3588 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3589 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3590 msm_pcm_get_channel_rule_index,
3591 msm_pcm_put_channel_rule_index),
3592 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3593 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3594 msm_pcm_get_channel_rule_index,
3595 msm_pcm_put_channel_rule_index),
3596 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3597 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3598 msm_pcm_get_channel_rule_index,
3599 msm_pcm_put_channel_rule_index),
3600 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3601 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3602 msm_pcm_get_channel_rule_index,
3603 msm_pcm_put_channel_rule_index),
3604 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3605 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3606 msm_pcm_get_channel_rule_index,
3607 msm_pcm_put_channel_rule_index),
3608
3609 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3610 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3611 msm_pcm_get_out_chs,
3612 msm_pcm_put_out_chs),
3613 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3614 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3615 msm_pcm_get_out_chs,
3616 msm_pcm_put_out_chs),
3617 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3618 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3619 msm_pcm_get_out_chs,
3620 msm_pcm_put_out_chs),
3621 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3622 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3623 msm_pcm_get_out_chs,
3624 msm_pcm_put_out_chs),
3625 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3626 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3627 msm_pcm_get_out_chs,
3628 msm_pcm_put_out_chs),
3629 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3630 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3631 msm_pcm_get_out_chs,
3632 msm_pcm_put_out_chs),
3633 {
3634 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3635 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3636 .name = "MultiMedia1 Channel Mixer",
3637 .info = msm_pcm_channel_mixer_info,
3638 .get = msm_pcm_channel_mixer_get,
3639 .put = msm_pcm_channel_mixer_put,
3640 .private_value = (unsigned long)&(mm1_channel_mux)
3641 },
3642 {
3643 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3644 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3645 .name = "MultiMedia2 Channel Mixer",
3646 .info = msm_pcm_channel_mixer_info,
3647 .get = msm_pcm_channel_mixer_get,
3648 .put = msm_pcm_channel_mixer_put,
3649 .private_value = (unsigned long)&(mm2_channel_mux)
3650 },
3651 {
3652 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3653 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3654 .name = "MultiMedia3 Channel Mixer",
3655 .info = msm_pcm_channel_mixer_info,
3656 .get = msm_pcm_channel_mixer_get,
3657 .put = msm_pcm_channel_mixer_put,
3658 .private_value = (unsigned long)&(mm3_channel_mux)
3659 },
3660 {
3661 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3662 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3663 .name = "MultiMedia4 Channel Mixer",
3664 .info = msm_pcm_channel_mixer_info,
3665 .get = msm_pcm_channel_mixer_get,
3666 .put = msm_pcm_channel_mixer_put,
3667 .private_value = (unsigned long)&(mm4_channel_mux)
3668 },
3669 {
3670 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3671 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3672 .name = "MultiMedia1 Output Channel1",
3673 .info = msm_pcm_channel_weight_info,
3674 .get = msm_pcm_channel_weight_get,
3675 .put = msm_pcm_channel_weight_put,
3676 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3677 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3678 },
3679 {
3680 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3681 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3682 .name = "MultiMedia1 Output Channel2",
3683 .info = msm_pcm_channel_weight_info,
3684 .get = msm_pcm_channel_weight_get,
3685 .put = msm_pcm_channel_weight_put,
3686 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3687 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3688 },
3689 {
3690 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3691 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3692 .name = "MultiMedia1 Output Channel3",
3693 .info = msm_pcm_channel_weight_info,
3694 .get = msm_pcm_channel_weight_get,
3695 .put = msm_pcm_channel_weight_put,
3696 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3697 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3698 },
3699 {
3700 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3701 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3702 .name = "MultiMedia1 Output Channel4",
3703 .info = msm_pcm_channel_weight_info,
3704 .get = msm_pcm_channel_weight_get,
3705 .put = msm_pcm_channel_weight_put,
3706 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3707 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3708 },
3709 {
3710 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3711 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3712 .name = "MultiMedia1 Output Channel5",
3713 .info = msm_pcm_channel_weight_info,
3714 .get = msm_pcm_channel_weight_get,
3715 .put = msm_pcm_channel_weight_put,
3716 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3717 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3718 },
3719 {
3720 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3721 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3722 .name = "MultiMedia1 Output Channel6",
3723 .info = msm_pcm_channel_weight_info,
3724 .get = msm_pcm_channel_weight_get,
3725 .put = msm_pcm_channel_weight_put,
3726 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3727 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3728 },
3729 {
3730 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3731 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3732 .name = "MultiMedia1 Output Channel7",
3733 .info = msm_pcm_channel_weight_info,
3734 .get = msm_pcm_channel_weight_get,
3735 .put = msm_pcm_channel_weight_put,
3736 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3737 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3738 },
3739 {
3740 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3741 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3742 .name = "MultiMedia1 Output Channel8",
3743 .info = msm_pcm_channel_weight_info,
3744 .get = msm_pcm_channel_weight_get,
3745 .put = msm_pcm_channel_weight_put,
3746 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3747 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3748 },
3749 {
3750 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3751 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3752 .name = "MultiMedia2 Output Channel1",
3753 .info = msm_pcm_channel_weight_info,
3754 .get = msm_pcm_channel_weight_get,
3755 .put = msm_pcm_channel_weight_put,
3756 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3757 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3758 },
3759 {
3760 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3761 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3762 .name = "MultiMedia2 Output Channel2",
3763 .info = msm_pcm_channel_weight_info,
3764 .get = msm_pcm_channel_weight_get,
3765 .put = msm_pcm_channel_weight_put,
3766 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3767 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3768 },
3769 {
3770 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3771 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3772 .name = "MultiMedia2 Output Channel3",
3773 .info = msm_pcm_channel_weight_info,
3774 .get = msm_pcm_channel_weight_get,
3775 .put = msm_pcm_channel_weight_put,
3776 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3777 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3778 },
3779 {
3780 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3781 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3782 .name = "MultiMedia3 Output Channel1",
3783 .info = msm_pcm_channel_weight_info,
3784 .get = msm_pcm_channel_weight_get,
3785 .put = msm_pcm_channel_weight_put,
3786 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3787 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3788 },
3789 {
3790 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3791 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3792 .name = "MultiMedia3 Output Channel2",
3793 .info = msm_pcm_channel_weight_info,
3794 .get = msm_pcm_channel_weight_get,
3795 .put = msm_pcm_channel_weight_put,
3796 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3797 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3798 },
3799 {
3800 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3801 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3802 .name = "MultiMedia1 Channel1",
3803 .info = msm_pcm_channel_input_be_info,
3804 .get = msm_pcm_channel_input_be_get,
3805 .put = msm_pcm_channel_input_be_put,
3806 .private_value = (unsigned long)&(mm1_ch1_enum)
3807 },
3808 {
3809 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3810 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3811 .name = "MultiMedia1 Channel2",
3812 .info = msm_pcm_channel_input_be_info,
3813 .get = msm_pcm_channel_input_be_get,
3814 .put = msm_pcm_channel_input_be_put,
3815 .private_value = (unsigned long)&(mm1_ch2_enum)
3816 },
3817 {
3818 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3819 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3820 .name = "MultiMedia1 Channel3",
3821 .info = msm_pcm_channel_input_be_info,
3822 .get = msm_pcm_channel_input_be_get,
3823 .put = msm_pcm_channel_input_be_put,
3824 .private_value = (unsigned long)&(mm1_ch3_enum)
3825 },
3826 {
3827 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3828 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3829 .name = "MultiMedia1 Channel4",
3830 .info = msm_pcm_channel_input_be_info,
3831 .get = msm_pcm_channel_input_be_get,
3832 .put = msm_pcm_channel_input_be_put,
3833 .private_value = (unsigned long)&(mm1_ch4_enum)
3834 },
3835 {
3836 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3837 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3838 .name = "MultiMedia1 Channel5",
3839 .info = msm_pcm_channel_input_be_info,
3840 .get = msm_pcm_channel_input_be_get,
3841 .put = msm_pcm_channel_input_be_put,
3842 .private_value = (unsigned long)&(mm1_ch5_enum)
3843 },
3844 {
3845 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3846 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3847 .name = "MultiMedia1 Channel6",
3848 .info = msm_pcm_channel_input_be_info,
3849 .get = msm_pcm_channel_input_be_get,
3850 .put = msm_pcm_channel_input_be_put,
3851 .private_value = (unsigned long)&(mm1_ch6_enum)
3852 },
3853 {
3854 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3855 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3856 .name = "MultiMedia1 Channel7",
3857 .info = msm_pcm_channel_input_be_info,
3858 .get = msm_pcm_channel_input_be_get,
3859 .put = msm_pcm_channel_input_be_put,
3860 .private_value = (unsigned long)&(mm1_ch7_enum)
3861 },
3862 {
3863 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3864 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3865 .name = "MultiMedia1 Channel8",
3866 .info = msm_pcm_channel_input_be_info,
3867 .get = msm_pcm_channel_input_be_get,
3868 .put = msm_pcm_channel_input_be_put,
3869 .private_value = (unsigned long)&(mm1_ch8_enum)
3870 },
3871};
3872static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3873 struct snd_ctl_elem_value *ucontrol)
3874{
3875 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3876 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3877 ucontrol->value.integer.value[0]);
3878 return 0;
3879}
3880
3881static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3882 struct snd_ctl_elem_value *ucontrol)
3883{
3884 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3885 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3886 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3887 return 0;
3888}
3889
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05303890static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
3891 struct snd_ctl_elem_value *ucontrol)
3892{
3893 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
3894 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
3895 ucontrol->value.integer.value[0]);
3896 return 0;
3897}
3898
3899static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
3900 struct snd_ctl_elem_value *ucontrol)
3901{
3902 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
3903 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
3904 __func__, msm_ec_ref_ch_downmixed);
3905 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
3906 return 0;
3907}
3908
3909static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
3910 struct snd_ctl_elem_value *ucontrol)
3911{
3912 int i = 0, ret = 0;
3913 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
3914 int out_channel_idx = ((struct soc_multi_mixer_control *)
3915 kcontrol->private_value)->shift;
3916
3917 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
3918 weights[i] = ucontrol->value.integer.value[i];
3919
3920 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
3921 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
3922 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
3923 return ret;
3924}
3925
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303926static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05303927 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
3928 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303929
3930static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3931 struct snd_ctl_elem_value *ucontrol)
3932{
3933 switch (msm_ec_ref_bit_format) {
3934 case SNDRV_PCM_FORMAT_S24_LE:
3935 ucontrol->value.integer.value[0] = 2;
3936 break;
3937 case SNDRV_PCM_FORMAT_S16_LE:
3938 ucontrol->value.integer.value[0] = 1;
3939 break;
3940 default:
3941 ucontrol->value.integer.value[0] = 0;
3942 break;
3943 }
3944 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3945 __func__, ucontrol->value.integer.value[0]);
3946 return 0;
3947}
3948
3949static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3950 struct snd_ctl_elem_value *ucontrol)
3951{
3952 u16 bit_width = 0;
3953
3954 switch (ucontrol->value.integer.value[0]) {
3955 case 2:
3956 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3957 break;
3958 case 1:
3959 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3960 break;
3961 default:
3962 msm_ec_ref_bit_format = 0;
3963 break;
3964 }
3965
3966 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3967 bit_width = 16;
3968 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3969 bit_width = 24;
3970
3971 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3972 __func__, msm_ec_ref_bit_format);
3973 adm_ec_ref_rx_bit_width(bit_width);
3974 return 0;
3975}
3976
3977static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3978
3979static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3980 struct snd_ctl_elem_value *ucontrol)
3981{
3982 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3983 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3984 __func__, ucontrol->value.integer.value[0]);
3985 return 0;
3986}
3987
3988static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3989 struct snd_ctl_elem_value *ucontrol)
3990{
3991 switch (ucontrol->value.integer.value[0]) {
3992 case 0:
3993 msm_ec_ref_sampling_rate = 0;
3994 break;
3995 case 1:
3996 msm_ec_ref_sampling_rate = 8000;
3997 break;
3998 case 2:
3999 msm_ec_ref_sampling_rate = 16000;
4000 break;
4001 case 3:
4002 msm_ec_ref_sampling_rate = 32000;
4003 break;
4004 case 4:
4005 msm_ec_ref_sampling_rate = 44100;
4006 break;
4007 case 5:
4008 msm_ec_ref_sampling_rate = 48000;
4009 break;
4010 case 6:
4011 msm_ec_ref_sampling_rate = 96000;
4012 break;
4013 case 7:
4014 msm_ec_ref_sampling_rate = 192000;
4015 break;
4016 case 8:
4017 msm_ec_ref_sampling_rate = 384000;
4018 break;
4019 default:
4020 msm_ec_ref_sampling_rate = 48000;
4021 break;
4022 }
4023 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
4024 __func__, msm_ec_ref_sampling_rate);
4025 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
4026 return 0;
4027}
4028
4029static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
4030 "32000", "44100", "48000", "96000", "192000", "384000"};
4031
4032static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05304033 SOC_ENUM_SINGLE_EXT(17, ec_ref_ch_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304034 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
4035 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
4036};
4037
4038static const struct snd_kcontrol_new ec_ref_param_controls[] = {
4039 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
4040 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
4041 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
4042 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
4043 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
4044 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05304045 SOC_ENUM_EXT("EC Reference Downmixed Channels", msm_route_ec_ref_params_enum[0],
4046 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
4047 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM, 0,
4048 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4049 NULL, msm_ec_ref_chmixer_weights_put),
4050 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM, 1,
4051 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4052 NULL, msm_ec_ref_chmixer_weights_put),
4053 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM, 2,
4054 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4055 NULL, msm_ec_ref_chmixer_weights_put),
4056 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM, 3,
4057 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4058 NULL, msm_ec_ref_chmixer_weights_put),
4059 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM, 4,
4060 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4061 NULL, msm_ec_ref_chmixer_weights_put),
4062 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM, 5,
4063 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4064 NULL, msm_ec_ref_chmixer_weights_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304065};
4066
4067static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
4068 struct snd_ctl_elem_value *ucontrol)
4069{
4070 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
4071 mutex_lock(&routing_lock);
4072 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
4073 mutex_unlock(&routing_lock);
4074 return 0;
4075}
4076
4077static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
4078 struct snd_ctl_elem_value *ucontrol)
4079{
4080 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05304081 struct snd_soc_dapm_widget *widget =
4082 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304083 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4084 struct snd_soc_dapm_update *update = NULL;
4085
4086
4087 mutex_lock(&routing_lock);
4088 switch (ucontrol->value.integer.value[0]) {
4089 case 0:
4090 msm_route_ec_ref_rx = 0;
4091 ec_ref_port_id = AFE_PORT_INVALID;
4092 break;
4093 case 1:
4094 msm_route_ec_ref_rx = 1;
4095 ec_ref_port_id = SLIMBUS_0_RX;
4096 break;
4097 case 2:
4098 msm_route_ec_ref_rx = 2;
4099 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
4100 break;
4101 case 3:
4102 msm_route_ec_ref_rx = 3;
4103 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4104 break;
4105 case 4:
4106 msm_route_ec_ref_rx = 4;
4107 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4108 break;
4109 case 5:
4110 msm_route_ec_ref_rx = 5;
4111 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4112 break;
4113 case 6:
4114 msm_route_ec_ref_rx = 6;
4115 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4116 break;
4117 case 7:
4118 msm_route_ec_ref_rx = 7;
4119 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
4120 break;
4121 case 9:
4122 msm_route_ec_ref_rx = 9;
4123 ec_ref_port_id = SLIMBUS_5_RX;
4124 break;
4125 case 10:
4126 msm_route_ec_ref_rx = 10;
4127 ec_ref_port_id = SLIMBUS_1_TX;
4128 break;
4129 case 11:
4130 msm_route_ec_ref_rx = 11;
4131 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
4132 break;
4133 case 12:
4134 msm_route_ec_ref_rx = 12;
4135 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
4136 break;
4137 case 13:
4138 msm_route_ec_ref_rx = 13;
4139 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
4140 break;
4141 case 14:
4142 msm_route_ec_ref_rx = 14;
4143 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
4144 break;
4145 case 15:
4146 msm_route_ec_ref_rx = 15;
4147 ec_ref_port_id = SLIMBUS_6_RX;
4148 break;
4149 case 16:
4150 msm_route_ec_ref_rx = 16;
4151 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
4152 break;
4153 case 17:
4154 msm_route_ec_ref_rx = 17;
4155 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
4156 break;
4157 case 18:
4158 msm_route_ec_ref_rx = 18;
4159 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
4160 break;
4161 case 19:
4162 msm_route_ec_ref_rx = 19;
4163 ec_ref_port_id = AFE_PORT_ID_USB_RX;
4164 break;
4165 case 20:
4166 msm_route_ec_ref_rx = 20;
4167 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
4168 break;
4169 case 21:
4170 msm_route_ec_ref_rx = 21;
4171 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
4172 break;
4173 case 22:
4174 msm_route_ec_ref_rx = 22;
4175 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
4176 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08004177 case 23:
4178 msm_route_ec_ref_rx = 23;
4179 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
4180 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05304181 case 24:
4182 msm_route_ec_ref_rx = 24;
4183 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
4184 break;
4185 case 25:
4186 msm_route_ec_ref_rx = 25;
4187 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
4188 break;
4189 case 26:
4190 msm_route_ec_ref_rx = 26;
4191 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
4192 break;
4193 case 27:
4194 msm_route_ec_ref_rx = 27;
4195 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
4196 break;
4197 case 28:
4198 msm_route_ec_ref_rx = 28;
4199 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
4200 break;
Zhou Songb167db12018-07-02 17:14:00 +08004201 case 29:
4202 msm_route_ec_ref_rx = 29;
4203 ec_ref_port_id = SLIMBUS_7_RX;
4204 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05304205 case 30:
4206 msm_route_ec_ref_rx = 30;
4207 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
4208 break;
4209 case 31:
4210 msm_route_ec_ref_rx = 31;
4211 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
4212 break;
4213 case 32:
4214 msm_route_ec_ref_rx = 32;
4215 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
4216 break;
4217 case 33:
4218 msm_route_ec_ref_rx = 33;
4219 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
4220 break;
4221 case 34:
4222 msm_route_ec_ref_rx = 34;
4223 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
4224 break;
Derek Chen2bb55772018-10-24 00:17:15 -07004225 case 35:
4226 msm_route_ec_ref_rx = 35;
4227 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
4228 break;
4229 case 36:
4230 msm_route_ec_ref_rx = 36;
4231 ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4232 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304233 default:
4234 msm_route_ec_ref_rx = 0; /* NONE */
4235 pr_err("%s EC ref rx %ld not valid\n",
4236 __func__, ucontrol->value.integer.value[0]);
4237 ec_ref_port_id = AFE_PORT_INVALID;
4238 break;
4239 }
Surendar Karkae7507512018-07-20 15:46:54 +05304240 msm_ec_ref_port_id = ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304241 adm_ec_ref_rx_id(ec_ref_port_id);
4242 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
4243 __func__, msm_route_ec_ref_rx);
4244 mutex_unlock(&routing_lock);
4245 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
4246 msm_route_ec_ref_rx, e, update);
4247 return 0;
4248}
4249
4250static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
4251 "PRI_MI2S_TX", "SEC_MI2S_TX",
4252 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
4253 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
4254 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
4255 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05304256 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
4257 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08004258 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05304259 "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 -07004260 "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 +05304261};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304262
4263static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
4264 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
4265};
4266
4267static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
4268 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
4269 msm_route_ec_ref_rx_enum[0],
4270 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4271
4272static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
4273 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
4274 msm_route_ec_ref_rx_enum[0],
4275 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4276
4277static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
4278 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
4279 msm_route_ec_ref_rx_enum[0],
4280 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4281
4282static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
4283 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
4284 msm_route_ec_ref_rx_enum[0],
4285 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4286
4287static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
4288 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
4289 msm_route_ec_ref_rx_enum[0],
4290 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4291
4292static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4293 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4294 msm_route_ec_ref_rx_enum[0],
4295 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4296
4297static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4298 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4299 msm_route_ec_ref_rx_enum[0],
4300 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4301
4302static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4303 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4304 msm_route_ec_ref_rx_enum[0],
4305 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4306
Asish Bhattacharya34504582017-08-08 12:55:01 +05304307static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4308 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4309 msm_route_ec_ref_rx_enum[0],
4310 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4311
Laxminath Kasam38070be2017-08-17 18:21:59 +05304312static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4313 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4314 msm_route_ec_ref_rx_enum[0],
4315 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4316
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304317static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4318 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4319 msm_route_ec_ref_rx_enum[0],
4320 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4321
4322static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4323 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4324 msm_route_ec_ref_rx_enum[0],
4325 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4326
4327static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4328 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4329 msm_route_ec_ref_rx_enum[0],
4330 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4331
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304332static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4333 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4334 msm_route_ec_ref_rx_enum[0],
4335 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4336
4337static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4338 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4339 msm_route_ec_ref_rx_enum[0],
4340 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4341
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304342static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4343 struct snd_ctl_elem_value *ucontrol)
4344{
4345 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4346
4347 mutex_lock(&routing_lock);
4348 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4349 mutex_unlock(&routing_lock);
4350 return 0;
4351}
4352
4353static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4354 struct snd_ctl_elem_value *ucontrol)
4355{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304356 struct snd_soc_dapm_widget *widget =
4357 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304358 int mux = ucontrol->value.enumerated.item[0];
4359 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4360 int ret = 1;
4361 bool state = true;
4362 uint16_t ext_ec_ref_port_id;
4363 struct snd_soc_dapm_update *update = NULL;
4364
4365 if (mux >= e->items) {
4366 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4367 return -EINVAL;
4368 }
4369
4370 mutex_lock(&routing_lock);
4371 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4372
4373 switch (msm_route_ext_ec_ref) {
4374 case EXT_EC_REF_PRI_MI2S_TX:
4375 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4376 break;
4377 case EXT_EC_REF_SEC_MI2S_TX:
4378 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4379 break;
4380 case EXT_EC_REF_TERT_MI2S_TX:
4381 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4382 break;
4383 case EXT_EC_REF_QUAT_MI2S_TX:
4384 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4385 break;
4386 case EXT_EC_REF_QUIN_MI2S_TX:
4387 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4388 break;
4389 case EXT_EC_REF_SLIM_1_TX:
4390 ext_ec_ref_port_id = SLIMBUS_1_TX;
4391 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004392 case EXT_EC_REF_SEC_TDM_TX:
4393 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4394 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304395 case EXT_EC_REF_NONE:
4396 default:
4397 ext_ec_ref_port_id = AFE_PORT_INVALID;
4398 state = false;
4399 break;
4400 }
4401
4402 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4403 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4404
4405 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4406 mutex_unlock(&routing_lock);
4407 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4408 update);
4409 } else {
4410 ret = -EINVAL;
4411 mutex_unlock(&routing_lock);
4412 }
4413 return ret;
4414}
4415
4416static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4417 "SEC_MI2S_TX", "TERT_MI2S_TX",
4418 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004419 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304420
4421static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4422 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4423};
4424
4425static const struct snd_kcontrol_new voc_ext_ec_mux =
4426 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4427 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4428
4429
4430static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004431 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4432 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304433 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004435 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4436 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304437 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004439 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4440 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304441 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004443 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4444 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304445 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004447 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4448 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304449 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004451 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4452 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304453 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004455 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4456 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304457 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004459 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4460 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304461 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004463 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4464 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304465 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004467 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4468 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304469 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004471 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4472 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304473 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004475 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4476 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304477 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004479 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4480 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304481 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004483 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4484 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304485 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004487 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4488 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304489 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004491 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4492 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304493 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004495 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4496 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304497 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004499 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4500 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304501 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004503 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4504 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304505 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4506 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304507 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4508 MSM_BACKEND_DAI_PRI_I2S_RX,
4509 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004511 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4512 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304513 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004515 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4516 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304517 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4518 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304519};
4520
4521static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004522 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4523 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304524 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004526 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4527 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304528 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004530 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4531 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304532 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004534 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4535 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304536 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004538 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4539 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304540 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004542 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4543 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304544 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004546 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4547 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304548 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004550 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4551 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304552 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004554 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4555 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304556 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004558 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4559 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304560 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004562 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4563 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304564 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004566 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4567 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304568 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004570 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4571 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304572 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004574 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4575 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304576 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004578 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4579 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304580 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004582 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4583 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304584 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004586 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4587 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304588 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004590 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4591 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304592 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004594 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4595 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304596 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4597 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304598 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4599 MSM_BACKEND_DAI_SEC_I2S_RX,
4600 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004602 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4603 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304604 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004606 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4607 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304608 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4609 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304610};
4611
Ralf Herzc8701f72018-06-20 11:37:35 +02004612static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004613 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004614 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304615 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004617 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004618 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304619 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004621 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004622 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304623 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004625 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004626 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304627 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004629 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004630 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304631 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004633 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004634 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304635 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004637 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004638 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304639 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004641 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004642 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304643 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004645 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004646 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304647 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004649 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004650 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304651 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004653 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004654 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304655 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004657 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004658 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304659 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004661 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004662 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304663 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004665 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004666 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304667 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004669 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004670 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304671 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004673 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004674 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304675 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004677 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004678 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304679 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004681 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004682 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304683 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004685 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004686 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304687 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4688 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304689 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4690 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4691 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004693 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004694 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304695 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004697 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004698 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4699 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4700 msm_routing_put_audio_mixer),
4701};
4702
4703static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4704 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4705 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4706 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4707 msm_routing_put_audio_mixer),
4708 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4709 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4710 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4711 msm_routing_put_audio_mixer),
4712 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4713 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4714 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4715 msm_routing_put_audio_mixer),
4716 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4717 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4718 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4719 msm_routing_put_audio_mixer),
4720 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4721 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4722 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4723 msm_routing_put_audio_mixer),
4724 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4725 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4726 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4727 msm_routing_put_audio_mixer),
4728 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4729 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4730 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4731 msm_routing_put_audio_mixer),
4732 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4733 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4734 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4735 msm_routing_put_audio_mixer),
4736 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4737 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4738 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4739 msm_routing_put_audio_mixer),
4740 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4741 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4742 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4743 msm_routing_put_audio_mixer),
4744 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4745 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4746 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4747 msm_routing_put_audio_mixer),
4748 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4749 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4750 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4751 msm_routing_put_audio_mixer),
4752 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4753 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4754 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4755 msm_routing_put_audio_mixer),
4756 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4757 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4758 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4759 msm_routing_put_audio_mixer),
4760 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4761 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4762 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4763 msm_routing_put_audio_mixer),
4764 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4765 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4766 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4767 msm_routing_put_audio_mixer),
4768 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4769 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4770 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4771 msm_routing_put_audio_mixer),
4772 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4773 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4774 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4775 msm_routing_put_audio_mixer),
4776 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4777 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4778 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4779 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304780 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4781 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4782 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4783 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004784 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4785 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4786 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4787 msm_routing_put_audio_mixer),
4788 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4789 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304790 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4791 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304792};
4793
4794static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004795 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4796 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304797 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004799 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4800 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304801 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004803 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4804 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304805 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004807 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4808 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304809 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004811 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4812 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304813 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004815 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4816 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304817 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004819 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4820 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304821 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004823 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4824 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304825 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004827 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4828 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304829 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004831 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4832 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304833 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004835 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4836 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304837 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004839 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4840 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304841 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004843 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4844 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304845 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004847 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4848 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304849 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004851 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4852 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304853 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004855 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4856 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304857 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4858 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304859 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4860 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4861 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4862 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304863};
4864
4865static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004866 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4867 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304868 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004870 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4871 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304872 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004874 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4875 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304876 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004878 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4879 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304880 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004882 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4883 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304884 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004886 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4887 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304888 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004890 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4891 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304892 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004894 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4895 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304896 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004898 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4899 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304900 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004902 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4903 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304904 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004906 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4907 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304908 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004910 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4911 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304912 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004914 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4915 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304916 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004918 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4919 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304920 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004922 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4923 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304924 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004926 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4927 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304928 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004930 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4931 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304932 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004934 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4935 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304936 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004938 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4939 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304940 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4941 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304942 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4943 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4944 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004946 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4947 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304948 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004950 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4951 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304952 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4953 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304954};
4955
4956static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004957 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4958 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304959 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004961 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4962 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304963 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004965 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4966 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304967 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004969 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4970 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304971 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004973 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4974 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304975 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004977 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4978 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304979 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004981 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4982 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304983 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004985 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4986 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304987 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004989 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4990 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304991 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004993 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4994 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304995 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004997 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4998 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304999 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005001 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5002 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305003 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005005 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5006 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305007 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005009 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5010 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305011 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005013 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5014 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305015 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005017 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5018 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305019 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005021 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5022 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305023 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005025 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5026 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305027 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005029 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5030 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305031 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5032 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305033 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5034 MSM_BACKEND_DAI_SLIMBUS_0_RX,
5035 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005037 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5038 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305039 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005041 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5042 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305043 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5044 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305045};
5046
5047static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005048 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5049 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305050 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005052 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5053 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305054 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005056 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5057 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305058 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005060 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5061 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305062 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005064 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5065 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305066 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005068 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5069 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305070 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005072 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5073 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305074 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005076 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5077 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305078 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005080 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5081 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305082 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005084 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5085 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305086 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005088 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5089 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305090 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005092 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5093 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305094 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005096 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5097 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305098 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005100 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5101 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305102 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005104 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5105 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305106 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005108 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5109 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305110 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005112 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5113 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305114 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005116 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5117 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305118 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005120 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5121 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305122 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5123 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305124 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5125 MSM_BACKEND_DAI_MI2S_RX,
5126 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005128 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5129 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305130 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005132 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5133 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305134 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5135 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305136};
5137
5138static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005139 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5140 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305141 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005143 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5144 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305145 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005147 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5148 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305149 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005151 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5152 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305153 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005155 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5156 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305157 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005159 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5160 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305161 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005163 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5164 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305165 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005167 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5168 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305169 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005171 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5172 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305173 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005175 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5176 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305177 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005179 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5180 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305181 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005183 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5184 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305185 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005187 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5188 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305189 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005191 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5192 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305193 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005195 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5196 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305197 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005199 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5200 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305201 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005203 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5204 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305205 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005207 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5208 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305209 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005211 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5212 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305213 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5214 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305215 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5216 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
5217 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005219 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5220 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305221 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005223 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5224 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305225 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5226 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305227};
5228
5229static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005230 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5231 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305232 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005234 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5235 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305236 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005238 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5239 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305240 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005242 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5243 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305244 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005246 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5247 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305248 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005250 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5251 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305252 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005254 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5255 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305256 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005258 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5259 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305260 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005262 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5263 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305264 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005266 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5267 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305268 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005270 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5271 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305272 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005274 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5275 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305276 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005278 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5279 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305280 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005282 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5283 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305284 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005286 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5287 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305288 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005290 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5291 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305292 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005294 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5295 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305296 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005298 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5299 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305300 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005302 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5303 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305304 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5305 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305306 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5307 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5308 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005310 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5311 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305312 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005314 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5315 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305316 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5317 msm_routing_put_audio_mixer),
5318
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305319};
5320
5321static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005322 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5323 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305324 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005326 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5327 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305328 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005330 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5331 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305332 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005334 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5335 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305336 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005338 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5339 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305340 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005342 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5343 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305344 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005346 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5347 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305348 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005350 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5351 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305352 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005354 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5355 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305356 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005358 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5359 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305360 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005362 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5363 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305364 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005366 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5367 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305368 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005370 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5371 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305372 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005374 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5375 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305376 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005378 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5379 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305380 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005382 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5383 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305384 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005386 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5387 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305388 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5389 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305390 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5391 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5392 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005394 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5395 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305396 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005398 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5399 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305400 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5401 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305402};
5403
5404static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005405 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5406 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305407 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5408 msm_routing_put_audio_mixer),
5409};
5410
5411static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005412 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5413 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305414 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005416 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5417 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305418 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005420 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5421 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305422 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005424 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5425 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305426 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005428 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5429 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305430 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005432 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5433 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305434 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005436 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5437 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305438 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005440 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5441 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305442 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005444 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5445 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305446 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005448 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5449 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305450 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005452 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5453 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305454 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005456 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5457 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305458 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005460 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5461 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305462 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005464 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5465 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305466 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005468 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5469 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305470 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005472 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5473 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305474 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005476 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5477 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305478 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005480 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5481 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305482 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005484 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5485 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305486 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5487 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305488 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5489 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5490 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005492 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5493 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305494 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005496 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5497 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305498 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5499 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305500};
5501
5502static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005503 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5504 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305505 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005507 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5508 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305509 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005511 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5512 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305513 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005515 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5516 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305517 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005519 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5520 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305521 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005523 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5524 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305525 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005527 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5528 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305529 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005531 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5532 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305533 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005535 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5536 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305537 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005539 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5540 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305541 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005543 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5544 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305545 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005547 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5548 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305549 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005551 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5552 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305553 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005555 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5556 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305557 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005559 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5560 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305561 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005563 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5564 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305565 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005567 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5568 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305569 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005571 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5572 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305573 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005575 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5576 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305577 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5578 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305579 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5580 MSM_BACKEND_DAI_PRI_MI2S_RX,
5581 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005583 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5584 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305585 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005587 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5588 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305589 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5590 msm_routing_put_audio_mixer),
5591
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305592};
5593
5594static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005595 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5596 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305597 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005599 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5600 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305601 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005603 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5604 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305605 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005607 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5608 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305609 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005611 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5612 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305613 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005615 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5616 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305617 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005619 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5620 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305621 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005623 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5624 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305625 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005627 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5628 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305629 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005631 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5632 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305633 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005635 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5636 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305637 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005639 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5640 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305641 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005643 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5644 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305645 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005647 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5648 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305649 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005651 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5652 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305653 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005655 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5656 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305657 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5658 msm_routing_put_audio_mixer),
5659};
5660
5661static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005662 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5663 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305664 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005666 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5667 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305668 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005670 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5671 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305672 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005674 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5675 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305676 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005678 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5679 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305680 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005682 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5683 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305684 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005686 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5687 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305688 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005690 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5691 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305692 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005694 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5695 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305696 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005698 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5699 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305700 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005702 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5703 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305704 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005706 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5707 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305708 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005710 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5711 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305712 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005714 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5715 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305716 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005718 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5719 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305720 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005722 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5723 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305724 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5725 msm_routing_put_audio_mixer),
5726};
5727
5728static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005729 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5730 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305731 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005733 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5734 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305735 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005737 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305739 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005741 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305743 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005745 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305747 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005749 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305751 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005753 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305755 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005757 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5758 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305759 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005761 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5762 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305763 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005765 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5766 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305767 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005769 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005773 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005777 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305779 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005781 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305783 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005785 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305787 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005789 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305791 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005793 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305795 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005797 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305799 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005801 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5802 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305803 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5804 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305805 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5806 MSM_BACKEND_DAI_HDMI_RX,
5807 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005809 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5810 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305811 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005813 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5814 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305815 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5816 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305817};
5818
5819static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005820 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5821 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305822 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005824 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5825 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305826 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005828 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5829 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305830 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005832 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5833 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305834 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005836 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5837 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305838 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005840 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5841 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305842 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005844 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5845 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305846 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005848 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5849 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305850 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005852 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5853 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305854 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005856 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5857 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305858 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005860 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5861 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305862 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005864 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305866 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005868 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305870 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005872 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305874 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005876 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5877 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305878 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005880 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5881 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305882 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5883 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305884 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5885 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5886 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5887 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305888};
5889
Karthikeyan Mani57550082018-05-03 18:43:58 -07005890static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5891 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5892 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5893 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5894 msm_routing_put_audio_mixer),
5895 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5896 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5897 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5898 msm_routing_put_audio_mixer),
5899 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5900 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5901 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5902 msm_routing_put_audio_mixer),
5903 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5904 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5905 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5906 msm_routing_put_audio_mixer),
5907 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5908 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5909 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5910 msm_routing_put_audio_mixer),
5911 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5912 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5913 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5914 msm_routing_put_audio_mixer),
5915 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5916 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5917 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5918 msm_routing_put_audio_mixer),
5919 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5920 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5921 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5922 msm_routing_put_audio_mixer),
5923 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5924 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5925 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5926 msm_routing_put_audio_mixer),
5927 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5928 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5929 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5930 msm_routing_put_audio_mixer),
5931 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5932 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5933 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5934 msm_routing_put_audio_mixer),
5935 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5936 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5937 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5938 msm_routing_put_audio_mixer),
5939 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5940 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5941 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5942 msm_routing_put_audio_mixer),
5943 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5944 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5945 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5946 msm_routing_put_audio_mixer),
5947 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5948 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5949 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5950 msm_routing_put_audio_mixer),
5951 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5952 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5953 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5954 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305955 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5956 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5957 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5958 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005959};
5960
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305961 /* incall music delivery mixer */
5962static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005963 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5964 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305965 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005967 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5968 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305969 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005971 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5972 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305973 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005975 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5976 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305977 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5978 msm_routing_put_audio_mixer),
5979};
5980
5981static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005982 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5983 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305984 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005986 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5987 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305988 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005990 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5991 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305992 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005994 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5995 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305996 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5997 msm_routing_put_audio_mixer),
5998};
5999
6000static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006001 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6002 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306003 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006005 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6006 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306007 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006009 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6010 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306011 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006013 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6014 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306015 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6016 msm_routing_put_audio_mixer),
6017};
6018
6019static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006020 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6021 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306022 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006024 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6025 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306026 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006028 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6029 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306030 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006032 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6033 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306034 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006036 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6037 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306038 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006040 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6041 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306042 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006044 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6045 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306046 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006048 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6049 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306050 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006052 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6053 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306054 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006056 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6057 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306058 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006060 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6061 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306062 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006064 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6065 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306066 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006068 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6069 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306070 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006072 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6073 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306074 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006076 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6077 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306078 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006080 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6081 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306082 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6083 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306084 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6085 MSM_BACKEND_DAI_SLIMBUS_6_RX,
6086 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6087 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306088};
6089
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306090static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
6091 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6092 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6093 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6094 msm_routing_put_audio_mixer),
6095 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6096 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6097 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6098 msm_routing_put_audio_mixer),
6099 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6100 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6101 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6102 msm_routing_put_audio_mixer),
6103 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6104 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6105 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6106 msm_routing_put_audio_mixer),
6107 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6108 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6109 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6110 msm_routing_put_audio_mixer),
6111 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6112 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6113 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6114 msm_routing_put_audio_mixer),
6115 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6116 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6117 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6118 msm_routing_put_audio_mixer),
6119 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6120 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6121 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6122 msm_routing_put_audio_mixer),
6123 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6124 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6125 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6126 msm_routing_put_audio_mixer),
6127 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6128 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6129 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6130 msm_routing_put_audio_mixer),
6131 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6132 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6133 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6134 msm_routing_put_audio_mixer),
6135 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6136 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6137 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6138 msm_routing_put_audio_mixer),
6139 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6140 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6141 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6142 msm_routing_put_audio_mixer),
6143 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6144 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6145 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6146 msm_routing_put_audio_mixer),
6147 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6148 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6149 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6150 msm_routing_put_audio_mixer),
6151 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6152 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6153 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6154 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306155 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6156 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6157 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6158 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306159};
6160
6161static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
6162 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6163 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6164 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6165 msm_routing_put_audio_mixer),
6166 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6167 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6168 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6169 msm_routing_put_audio_mixer),
6170 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6171 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6172 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6173 msm_routing_put_audio_mixer),
6174 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6175 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6176 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6177 msm_routing_put_audio_mixer),
6178 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6179 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6180 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6181 msm_routing_put_audio_mixer),
6182 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6183 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6184 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6185 msm_routing_put_audio_mixer),
6186 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6187 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6188 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6189 msm_routing_put_audio_mixer),
6190 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6191 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6192 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6193 msm_routing_put_audio_mixer),
6194 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6195 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6196 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6197 msm_routing_put_audio_mixer),
6198 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6199 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6200 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6201 msm_routing_put_audio_mixer),
6202 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6203 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6204 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6205 msm_routing_put_audio_mixer),
6206 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6207 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6208 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6209 msm_routing_put_audio_mixer),
6210 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6211 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6212 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6213 msm_routing_put_audio_mixer),
6214 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6215 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6216 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6217 msm_routing_put_audio_mixer),
6218 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6219 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6220 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6221 msm_routing_put_audio_mixer),
6222 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6223 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6224 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6225 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306226 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6227 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6228 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6229 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306230};
6231
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306232static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
6233 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6234 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6235 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6236 msm_routing_put_audio_mixer),
6237 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6238 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6239 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6240 msm_routing_put_audio_mixer),
6241 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6242 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6243 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6244 msm_routing_put_audio_mixer),
6245 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6247 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6248 msm_routing_put_audio_mixer),
6249 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6250 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6251 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6252 msm_routing_put_audio_mixer),
6253 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6254 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6255 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6256 msm_routing_put_audio_mixer),
6257 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6258 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6259 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6260 msm_routing_put_audio_mixer),
6261 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6262 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6263 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6264 msm_routing_put_audio_mixer),
6265 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6266 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6267 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6268 msm_routing_put_audio_mixer),
6269 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6270 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6271 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6272 msm_routing_put_audio_mixer),
6273 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6274 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6275 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6276 msm_routing_put_audio_mixer),
6277 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6278 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6279 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6280 msm_routing_put_audio_mixer),
6281 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6282 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6283 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6284 msm_routing_put_audio_mixer),
6285 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6286 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6287 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6288 msm_routing_put_audio_mixer),
6289 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6290 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6291 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6292 msm_routing_put_audio_mixer),
6293 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6294 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6295 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6296 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306297 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6298 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6299 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6300 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306301};
6302
6303static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6304 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6305 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6306 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6307 msm_routing_put_audio_mixer),
6308 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6309 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6310 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6311 msm_routing_put_audio_mixer),
6312 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6313 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6314 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6315 msm_routing_put_audio_mixer),
6316 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6317 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6318 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6319 msm_routing_put_audio_mixer),
6320 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6321 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6322 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6323 msm_routing_put_audio_mixer),
6324 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6325 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6326 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6327 msm_routing_put_audio_mixer),
6328 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6329 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6330 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6331 msm_routing_put_audio_mixer),
6332 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6333 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6334 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6335 msm_routing_put_audio_mixer),
6336 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6337 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6338 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6339 msm_routing_put_audio_mixer),
6340 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6341 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6342 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6343 msm_routing_put_audio_mixer),
6344 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6345 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6346 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6347 msm_routing_put_audio_mixer),
6348 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6349 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6350 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6351 msm_routing_put_audio_mixer),
6352 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6353 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6354 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6355 msm_routing_put_audio_mixer),
6356 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6357 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6358 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6359 msm_routing_put_audio_mixer),
6360 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6361 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6362 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6363 msm_routing_put_audio_mixer),
6364 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6365 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6366 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6367 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306368 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6369 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6370 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6371 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306372};
6373
6374static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6375 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6376 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6377 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6378 msm_routing_put_audio_mixer),
6379 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6380 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6381 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6382 msm_routing_put_audio_mixer),
6383 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6384 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6385 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6386 msm_routing_put_audio_mixer),
6387 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6388 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6389 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6390 msm_routing_put_audio_mixer),
6391 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6392 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6393 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6394 msm_routing_put_audio_mixer),
6395 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6396 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6397 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6398 msm_routing_put_audio_mixer),
6399 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6400 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6401 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6402 msm_routing_put_audio_mixer),
6403 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6404 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6405 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6406 msm_routing_put_audio_mixer),
6407 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6408 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6409 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6410 msm_routing_put_audio_mixer),
6411 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6412 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6413 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6414 msm_routing_put_audio_mixer),
6415 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6416 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6417 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6418 msm_routing_put_audio_mixer),
6419 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6420 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6421 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6422 msm_routing_put_audio_mixer),
6423 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6424 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6425 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6426 msm_routing_put_audio_mixer),
6427 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6428 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6429 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6430 msm_routing_put_audio_mixer),
6431 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6432 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6433 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6434 msm_routing_put_audio_mixer),
6435 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6436 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6437 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6438 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306439 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6440 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6441 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6442 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306443};
6444
6445static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6446 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6447 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6448 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6449 msm_routing_put_audio_mixer),
6450 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6451 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6452 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6453 msm_routing_put_audio_mixer),
6454 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6455 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6456 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6457 msm_routing_put_audio_mixer),
6458 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6459 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6460 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6461 msm_routing_put_audio_mixer),
6462 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6463 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6464 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6465 msm_routing_put_audio_mixer),
6466 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6467 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6468 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6469 msm_routing_put_audio_mixer),
6470 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6471 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6472 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6473 msm_routing_put_audio_mixer),
6474 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6475 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6476 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6477 msm_routing_put_audio_mixer),
6478 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6479 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6480 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6481 msm_routing_put_audio_mixer),
6482 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6483 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6484 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6485 msm_routing_put_audio_mixer),
6486 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6487 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6488 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6489 msm_routing_put_audio_mixer),
6490 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6491 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6492 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6493 msm_routing_put_audio_mixer),
6494 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6495 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6496 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6497 msm_routing_put_audio_mixer),
6498 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6499 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6500 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6501 msm_routing_put_audio_mixer),
6502 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6503 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6504 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6505 msm_routing_put_audio_mixer),
6506 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6507 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6508 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6509 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306510 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6511 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6512 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6513 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306514};
6515
6516static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6517 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6518 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6519 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6520 msm_routing_put_audio_mixer),
6521 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6522 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6523 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6524 msm_routing_put_audio_mixer),
6525 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6526 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6527 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6528 msm_routing_put_audio_mixer),
6529 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6531 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
6533 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6535 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
6537 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6538 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6539 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6540 msm_routing_put_audio_mixer),
6541 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6543 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
6545 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6546 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6547 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6548 msm_routing_put_audio_mixer),
6549 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6550 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6551 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6552 msm_routing_put_audio_mixer),
6553 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6554 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6555 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6556 msm_routing_put_audio_mixer),
6557 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6558 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6559 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6560 msm_routing_put_audio_mixer),
6561 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6563 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
6565 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6567 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
6569 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6570 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6571 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6572 msm_routing_put_audio_mixer),
6573 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6575 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
6577 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6578 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6579 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6580 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306581 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6582 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6583 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6584 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306585};
6586
6587static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6588 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6589 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6590 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6591 msm_routing_put_audio_mixer),
6592 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6593 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6594 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6595 msm_routing_put_audio_mixer),
6596 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6597 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6598 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6599 msm_routing_put_audio_mixer),
6600 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6601 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6602 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6603 msm_routing_put_audio_mixer),
6604 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6605 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6606 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6607 msm_routing_put_audio_mixer),
6608 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6610 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
6612 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6614 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
6616 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6617 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6618 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6619 msm_routing_put_audio_mixer),
6620 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6621 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6622 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6623 msm_routing_put_audio_mixer),
6624 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6625 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6626 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6627 msm_routing_put_audio_mixer),
6628 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6629 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6630 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6631 msm_routing_put_audio_mixer),
6632 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6633 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6634 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6635 msm_routing_put_audio_mixer),
6636 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6638 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6639 msm_routing_put_audio_mixer),
6640 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6642 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
6644 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6646 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
6648 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6649 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6650 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6651 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306652 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6653 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6654 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6655 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306656};
6657
6658static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6659 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6660 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6661 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6662 msm_routing_put_audio_mixer),
6663 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6664 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6665 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6666 msm_routing_put_audio_mixer),
6667 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6668 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6669 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6670 msm_routing_put_audio_mixer),
6671 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6672 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6673 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6674 msm_routing_put_audio_mixer),
6675 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6676 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6677 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6678 msm_routing_put_audio_mixer),
6679 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6680 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6681 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6682 msm_routing_put_audio_mixer),
6683 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6684 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6685 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6686 msm_routing_put_audio_mixer),
6687 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6688 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6689 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6690 msm_routing_put_audio_mixer),
6691 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6692 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6693 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6694 msm_routing_put_audio_mixer),
6695 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6696 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6697 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6698 msm_routing_put_audio_mixer),
6699 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6700 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6701 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6702 msm_routing_put_audio_mixer),
6703 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6704 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6705 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6706 msm_routing_put_audio_mixer),
6707 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6709 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
6711 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6713 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
6715 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6717 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
6719 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6721 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306723 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6725 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306727};
6728
6729static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6730 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6731 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6732 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6733 msm_routing_put_audio_mixer),
6734 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6735 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6736 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6737 msm_routing_put_audio_mixer),
6738 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6739 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6740 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6741 msm_routing_put_audio_mixer),
6742 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6744 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
6746 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6748 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
6750 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6752 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
6754 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6756 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
6758 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6759 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6760 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6761 msm_routing_put_audio_mixer),
6762 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6763 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6764 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6765 msm_routing_put_audio_mixer),
6766 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6767 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6768 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6769 msm_routing_put_audio_mixer),
6770 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6771 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6772 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6773 msm_routing_put_audio_mixer),
6774 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6776 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
6778 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6780 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
6782 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6784 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
6786 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6788 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
6790 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6792 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306794 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6796 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306798};
6799
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306800static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006801 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6802 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306803 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006805 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6806 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306807 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006809 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6810 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306811 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006813 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6814 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306815 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006817 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6818 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306819 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006821 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6822 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306823 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006825 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6826 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306827 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006829 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6830 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006833 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6834 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006837 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6838 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306839 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006841 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006845 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006849 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006853 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006857 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006861 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306863 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306865 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6867 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306869};
6870
Surendar Karka3ef3d812018-09-28 18:52:35 +05306871static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6872 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6873 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6874 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6875 msm_routing_put_audio_mixer),
6876 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6877 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6878 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6879 msm_routing_put_audio_mixer),
6880 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6881 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6882 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6883 msm_routing_put_audio_mixer),
6884 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6885 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6886 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6887 msm_routing_put_audio_mixer),
6888 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6889 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6890 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6891 msm_routing_put_audio_mixer),
6892 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6893 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6894 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6895 msm_routing_put_audio_mixer),
6896 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6897 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6898 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6899 msm_routing_put_audio_mixer),
6900 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6901 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6902 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6903 msm_routing_put_audio_mixer),
6904 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6905 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6906 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6907 msm_routing_put_audio_mixer),
6908 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6909 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6910 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6911 msm_routing_put_audio_mixer),
6912 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6913 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6914 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6915 msm_routing_put_audio_mixer),
6916 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6918 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
6920 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6922 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
6924 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6926 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
6928 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6930 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
6932 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6934 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
6936 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6938 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
6940};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306941static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006942 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6943 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306944 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006946 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6947 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306948 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006950 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6951 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306952 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006954 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6955 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306956 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006958 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6959 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306960 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006962 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6963 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306964 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006966 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6967 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306968 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006970 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6971 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306972 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006974 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6975 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306976 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006978 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6979 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306980 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006982 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6983 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306984 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006986 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6987 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306988 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006990 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6991 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306992 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006994 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6995 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306996 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006998 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6999 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307000 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007002 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7003 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307004 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7005 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307006 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7007 MSM_BACKEND_DAI_USB_RX,
7008 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7009 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307010};
7011
7012static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007013 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7014 MSM_BACKEND_DAI_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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_INT_BT_SCO_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007077 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7078 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307079 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007081 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7082 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307083 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007085 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7086 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307087 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7088 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307089 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7090 MSM_BACKEND_DAI_INT_BT_SCO_RX,
7091 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007093 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7094 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307095 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007097 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7098 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307099 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7100 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307101};
7102
7103static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007104 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7105 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307106 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007108 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7109 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307110 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007112 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7113 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307114 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007116 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7117 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307118 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007120 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7121 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307122 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007124 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7125 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307126 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007128 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7129 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307130 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007132 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7133 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307134 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007136 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7137 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307138 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007140 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7141 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307142 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007144 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7145 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307146 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007148 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7149 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307150 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007152 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7153 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307154 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007156 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7157 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307158 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007160 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7161 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307162 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007164 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7165 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307166 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7167 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307168 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7169 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
7170 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7171 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307172};
7173
7174static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007175 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7176 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307177 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007179 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7180 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307181 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007183 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7184 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307185 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007187 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7188 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307189 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007191 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7192 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307193 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007195 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7196 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307197 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007199 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7200 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307201 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007203 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7204 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307205 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007207 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7208 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307209 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007211 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7212 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307213 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007215 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7216 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307217 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007219 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7220 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307221 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007223 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7224 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307225 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007227 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7228 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307229 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007231 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7232 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307233 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007235 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7236 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307237 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007239 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7240 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307241 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007243 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7244 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307245 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007247 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7248 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307249 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7250 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307251 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_INT_FM_RX,
7253 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007255 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7256 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307257 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007259 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307261 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307263};
7264
7265static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007266 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7267 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307268 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007270 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7271 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307272 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007274 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7275 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307276 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007278 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307280 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007282 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307284 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007286 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307288 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007290 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307292 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007294 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307296 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007298 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307300 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007302 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307304 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007306 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307308 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007310 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307312 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007314 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307316 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007318 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307320 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007322 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307324 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007326 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307328 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007330 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307332 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007334 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307336 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007338 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7339 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307340 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7341 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307342 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_AFE_PCM_RX,
7344 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007346 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7347 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307348 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007350 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7351 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307352 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7353 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307354};
7355
7356static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007357 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7358 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307359 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007361 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7362 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307363 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007365 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7366 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307367 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007369 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7370 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307371 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007373 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307375 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007377 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307379 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007381 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307383 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007385 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007389 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007393 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007397 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007405 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007409 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7410 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307411 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007413 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7414 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307415 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007417 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7418 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307419 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007421 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7422 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307423 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007425 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7426 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307427 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007429 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7430 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307431 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7432 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007433 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7434 MSM_BACKEND_DAI_AUXPCM_RX,
7435 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7436 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307437 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_AUXPCM_RX,
7439 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007441 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7442 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307443 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007445 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7446 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307447 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7448 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307449};
7450
7451static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007452 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307454 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007456 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307458 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007460 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307462 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007464 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307466 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007468 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7469 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307470 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007472 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007484 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307486 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007488 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7489 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307490 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007492 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7493 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307494 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007496 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307498 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007500 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307502 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007504 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7505 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307506 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007508 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7509 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307510 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007512 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7513 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307514 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007516 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7517 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307518 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007520 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7521 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307522 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007524 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7525 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307526 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7527 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007528 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7529 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7530 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7531 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307532 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7533 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7534 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007536 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7537 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307538 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007540 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7541 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307542 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7543 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307544};
7545
7546static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007547 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307549 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007551 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307553 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007555 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7556 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307557 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007559 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7560 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307561 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007563 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7564 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307565 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007567 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7568 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307569 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007571 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307573 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007575 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7576 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307577 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007579 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7580 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307581 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007583 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7584 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307585 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007587 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7588 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307589 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007591 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7592 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307593 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007595 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7596 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307597 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007599 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7600 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307601 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007603 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7604 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307605 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007607 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7608 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307609 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7610 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307611 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7612 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7613 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7614 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307615};
7616
7617static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007618 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007622 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7623 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307624 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007626 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7627 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307628 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007630 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7631 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307632 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007634 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7635 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307636 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007638 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7639 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307640 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007642 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7643 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307644 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007646 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7647 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307648 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007650 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7651 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307652 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007654 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7655 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307656 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007658 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7659 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307660 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007662 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7663 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307664 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007666 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7667 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307668 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007670 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7671 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307672 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007674 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7675 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307676 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007678 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7679 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307680 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7681 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307682 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7683 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7684 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7685 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307686};
7687
Rohit Kumara5077932017-09-10 22:05:05 +05307688static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007689 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307691 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007693 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307695 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007697 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7698 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307699 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007701 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7702 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307703 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007705 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7706 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307707 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007709 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7710 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307711 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007713 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7714 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307715 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007717 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7718 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307719 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007721 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7722 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307723 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007725 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7726 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307727 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007729 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7730 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307731 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007733 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7734 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307735 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007737 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7738 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307739 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007741 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7742 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307743 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007745 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7746 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307747 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007749 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7750 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307751 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7752 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307753 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7754 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7755 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7756 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307757};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307758static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007759 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7760 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307761 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007763 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7764 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307765 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007767 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7768 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307769 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007771 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307773 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007775 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307777 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007779 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307781 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007783 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307785 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007787 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307789 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007791 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307793 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007795 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307797 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007799 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307801 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007803 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307805 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007807 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307809 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007811 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307813 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007815 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307817 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007819 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307821 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007823 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7825 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307827};
7828
7829static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007830 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7831 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307832 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007834 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7835 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307836 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007838 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7839 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307840 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007842 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307844 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007846 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307848 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007850 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307852 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007854 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307856 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007858 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307860 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007862 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307864 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007866 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307868 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007870 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307872 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007874 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307876 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007878 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307880 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007882 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307884 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007886 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307888 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007890 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307892 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007894 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7896 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307898};
7899
7900static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007901 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7902 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307903 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007905 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7906 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307907 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007909 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307911 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007913 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307915 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007917 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307919 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007921 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307923 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007925 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307927 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007929 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307931 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007933 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307935 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007937 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307939 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007941 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307943 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007945 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307947 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007949 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307951 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007953 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307955 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007957 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307959 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007961 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307963 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007965 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7967 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307969};
7970
7971static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007972 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7973 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307974 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007976 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7977 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307978 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007980 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307982 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007984 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307986 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007988 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307990 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007992 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307994 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007996 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307998 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008000 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308002 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008004 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308006 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008008 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308010 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008012 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308014 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008016 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308018 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008020 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308022 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008024 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308026 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008028 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308030 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008032 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308034 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008036 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_PRI_TDM_RX_3,
8038 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308040};
8041
8042static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008043 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8044 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308045 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008047 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308049 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008051 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308053 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008055 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308057 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008059 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308061 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008063 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308065 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008067 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308069 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008071 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308073 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008075 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308077 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008079 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308081 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008083 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308085 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008087 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308089 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008091 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308093 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008095 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308097 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008099 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308101 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008103 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308105 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
8107};
8108
8109static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008110 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8111 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308112 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008114 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8115 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308116 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008118 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8119 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308120 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008122 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8123 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308124 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008126 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8127 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308128 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008130 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8131 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308132 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008134 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8135 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308136 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008138 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8139 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308140 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008142 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8143 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308144 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008146 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8147 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308148 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008150 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8151 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308152 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008154 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8155 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308156 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008158 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8159 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308160 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008162 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8163 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308164 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008166 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8167 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308168 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008170 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8171 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308172 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8173 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008174 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8175 MSM_BACKEND_DAI_SEC_TDM_RX_0,
8176 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8177 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308178};
8179
8180static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008181 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8182 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308183 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008185 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8186 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308187 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008189 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8190 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308191 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008193 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308195 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008197 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308199 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008201 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308203 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008205 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308207 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008209 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8210 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308211 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008213 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8214 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308215 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008217 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8218 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308219 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008221 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8222 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308223 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008225 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8226 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308227 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008229 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8230 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308231 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008233 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8234 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308235 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008237 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8238 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308239 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008241 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8242 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308243 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8244 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008245 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8246 MSM_BACKEND_DAI_SEC_TDM_RX_1,
8247 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8248 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308249};
8250
8251static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008252 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8253 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308254 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008256 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8257 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308258 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008260 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308262 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008264 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308266 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008268 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308270 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008272 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308274 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008276 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308278 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008280 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8281 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308282 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008284 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8285 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308286 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008288 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8289 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308290 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008292 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8293 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308294 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008296 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308298 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008300 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308302 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008304 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308306 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008308 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8309 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308310 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008312 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308314 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008316 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8318 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308320};
8321
8322static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008323 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8324 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308325 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008327 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8328 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308329 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008331 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8332 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308333 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008335 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308337 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008339 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8340 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308341 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008343 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8344 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308345 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008347 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8348 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308349 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008351 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8352 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308353 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008355 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8356 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308357 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008359 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8360 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308361 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008363 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8364 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308365 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008367 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8368 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308369 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008371 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8372 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308373 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008375 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8376 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308377 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008379 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8380 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308381 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008383 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8384 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308385 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8386 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008387 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8389 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308391};
8392
8393static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008394 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8395 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308396 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008398 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8399 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308400 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008402 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8403 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308404 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008406 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308408 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008410 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308412 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008414 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308416 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008418 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308420 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008422 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8423 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308424 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008426 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8427 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308428 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008430 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8431 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308432 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008434 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8435 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308436 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008438 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8439 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308440 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008442 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8443 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308444 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008446 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8447 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308448 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008450 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8451 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308452 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008454 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8455 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308456 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8457 msm_routing_put_audio_mixer),
8458};
8459
8460static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008461 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8462 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308463 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008465 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8466 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308467 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008469 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8470 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308471 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008485 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008489 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008493 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008497 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008501 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008505 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308507 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008509 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308511 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008513 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308515 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008517 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8518 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308519 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008521 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8522 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308523 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8524 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008525 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8526 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8527 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8528 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308529};
8530
8531static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008532 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8533 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308534 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008536 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8537 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308538 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008540 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8541 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308542 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008544 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8545 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308546 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008548 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308550 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008552 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308554 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008556 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308558 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008560 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308562 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008564 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308566 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008568 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308570 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008572 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308574 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008576 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308578 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008580 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308582 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008584 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308586 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008588 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308590 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008592 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8593 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308594 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8595 msm_routing_put_audio_mixer),
8596};
8597
8598static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008599 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8600 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308601 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008603 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8604 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308605 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008607 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8608 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308609 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008611 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8612 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308613 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008615 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8616 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308617 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008619 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8620 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308621 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008623 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8624 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308625 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008627 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8628 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308629 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008631 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8632 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308633 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008635 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8636 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308637 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008639 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8640 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308641 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008643 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8644 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308645 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008647 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8648 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308649 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008651 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8652 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308653 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008655 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8656 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308657 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008659 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8660 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308661 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8662 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008663 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8664 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8665 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8666 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308667};
8668
8669static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008670 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8671 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308672 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008674 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8675 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308676 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008678 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8679 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308680 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008682 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8683 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308684 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008686 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8687 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308688 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008690 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8691 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308692 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008694 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8695 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308696 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008698 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8699 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308700 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008702 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8703 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308704 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008706 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8707 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308708 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008710 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8711 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308712 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008714 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8715 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308716 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008718 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8719 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308720 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008722 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8723 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308724 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008726 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8727 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308728 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008730 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8731 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308732 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8733 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008734 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8735 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8736 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8737 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308738};
8739
8740static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008741 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8742 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308743 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008745 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8746 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308747 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008749 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8750 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308751 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008753 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8754 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308755 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008757 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8758 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308759 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008761 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8762 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308763 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008765 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8766 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308767 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008769 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8770 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308771 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008773 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8774 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308775 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008777 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8778 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308779 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008781 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8782 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308783 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008785 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8786 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308787 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008789 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8790 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308791 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008793 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8794 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308795 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008797 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8798 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308799 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008801 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8802 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308803 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8804 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008805 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8806 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8807 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8808 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308809};
8810
8811static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008812 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8813 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308814 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008816 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8817 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308818 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008820 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8821 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308822 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008824 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8825 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308826 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008828 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8829 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308830 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008832 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8833 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308834 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008836 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8837 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308838 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008840 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8841 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308842 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008844 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8845 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308846 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008848 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8849 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308850 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008852 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8853 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308854 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008856 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8857 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308858 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008860 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8861 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308862 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008864 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8865 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308866 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008868 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8869 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308870 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008872 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8873 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308874 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8875 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008876 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8877 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8878 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8879 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308880};
8881
8882static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008883 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8884 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308885 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008887 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8888 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308889 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008891 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8892 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308893 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008895 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8896 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308897 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008899 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8900 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308901 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008903 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8904 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308905 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008907 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8908 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308909 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008911 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8912 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308913 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008915 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8916 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308917 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008919 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8920 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308921 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008923 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8924 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308925 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008927 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8928 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308929 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008931 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8932 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308933 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008935 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8936 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308937 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008939 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8940 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308941 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008943 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8944 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308945 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008947 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8948 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308949 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8950 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008951 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8952 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8953 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8954 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308955};
8956
8957static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008958 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8959 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308960 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008962 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8963 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308964 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008966 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8967 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308968 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008970 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8971 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308972 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008974 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8975 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308976 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008978 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8979 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308980 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008982 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8983 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308984 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008986 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8987 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308988 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008990 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8991 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308992 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008994 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8995 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308996 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008998 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8999 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309000 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009002 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9003 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309004 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009006 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9007 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309008 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009010 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9011 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309012 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009014 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9015 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309016 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009018 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9019 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309020 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9021 msm_routing_put_audio_mixer),
9022};
9023
9024static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009025 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9026 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309027 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009029 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9030 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309031 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009033 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9034 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309035 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009037 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9038 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309039 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009041 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9042 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309043 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009045 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9046 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309047 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009049 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9050 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309051 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009053 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9054 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309055 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009057 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9058 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309059 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009061 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9062 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309063 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009065 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9066 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309067 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009069 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309071 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009073 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009085 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009089 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009093 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9094 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
9095 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9096 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309097};
9098
9099static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009100 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9101 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309102 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009104 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9105 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309106 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009108 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9109 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309110 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009112 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9113 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309114 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009116 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9117 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309118 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009120 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9121 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309122 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009124 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9125 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309126 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009128 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9129 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309130 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009132 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9133 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309134 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009136 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9137 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309138 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009140 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9141 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309142 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009144 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9145 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309146 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009148 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9149 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309150 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009152 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9153 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309154 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009156 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9157 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309158 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009160 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9161 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309162 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009164 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9165 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309166 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9167 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009168 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9169 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
9170 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9171 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309172};
9173
9174static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009175 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9176 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309177 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009179 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9180 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309181 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009183 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9184 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309185 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009187 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9188 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309189 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009191 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9192 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309193 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009195 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9196 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309197 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009199 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9200 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309201 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009203 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9204 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309205 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009207 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9208 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309209 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009211 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9212 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309213 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009215 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9216 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309217 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009219 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9220 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309221 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009223 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9224 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309225 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009227 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9228 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309229 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009231 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9232 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309233 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009235 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9236 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309237 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009239 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9240 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309241 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9242 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009243 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9244 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
9245 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9246 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309247};
9248
Rohit Kumara5077932017-09-10 22:05:05 +05309249static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009250 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9251 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309252 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009254 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9255 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309256 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009258 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9259 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309260 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009262 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9263 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309264 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009266 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9267 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309268 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009270 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9271 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309272 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009274 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9275 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309276 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009278 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9279 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309280 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009282 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9283 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309284 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009286 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9287 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309288 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009290 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9291 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309292 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009294 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9295 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309296 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009298 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9299 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309300 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009302 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9303 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309304 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009306 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9307 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309308 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009310 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9311 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309312 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009314 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9315 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309316 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9317 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009318 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9319 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9320 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9321 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309322};
9323
9324static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009325 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9326 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309327 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009329 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9330 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309331 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009333 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9334 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309335 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009337 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9338 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309339 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009341 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9342 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309343 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009345 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9346 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309347 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009349 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9350 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309351 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009353 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9354 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309355 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009357 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9358 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309359 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009361 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9362 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309363 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009365 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9366 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309367 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009369 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9370 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309371 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009373 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9374 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309375 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009377 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9378 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309379 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009381 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9382 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309383 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009385 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309387 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9388 msm_routing_put_audio_mixer),
9389};
9390
9391static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009392 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9393 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309394 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009396 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9397 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309398 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009400 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9401 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309402 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009404 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9405 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309406 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009408 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9409 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309410 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009412 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9413 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309414 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009416 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9417 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309418 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009420 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9421 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309422 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009424 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9425 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309426 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009428 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9429 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309430 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009432 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9433 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309434 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009436 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9437 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309438 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009440 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9441 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309442 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009444 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9445 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309446 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009448 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9449 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309450 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009452 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9453 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309454 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009456 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309458 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009460 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9462 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309464};
9465
9466static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009467 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9468 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309469 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009471 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9472 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309473 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009475 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9476 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309477 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009479 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9480 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309481 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009483 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9484 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309485 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009487 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9488 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309489 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009491 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9492 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309493 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009495 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9496 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309497 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009499 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9500 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309501 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009503 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9504 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309505 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009507 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9508 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309509 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009511 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9512 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309513 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009515 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9516 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309517 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009519 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9520 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309521 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009523 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309525 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009527 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9528 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309529 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009531 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309533 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009535 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9537 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9538 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309539};
9540
9541static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009542 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9543 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309544 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009546 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9547 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309548 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009550 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9551 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309552 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009554 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9555 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309556 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009558 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9559 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309560 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009562 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9563 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309564 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009566 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9567 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309568 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009570 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9571 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309572 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009574 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9575 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309576 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009578 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9579 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309580 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009582 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9583 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309584 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009586 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9587 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309588 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009590 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9591 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309592 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009594 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9595 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309596 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009598 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9599 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309600 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009602 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9603 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309604 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009606 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9607 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309608 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9609 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009610 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9611 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9612 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9613 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309614};
9615
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309616static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009617 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9618 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309619 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009621 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9622 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309623 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009625 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9626 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309627 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009629 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9630 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309631 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009633 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9634 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309635 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009637 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9638 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309639 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009641 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9642 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309643 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009645 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9646 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309647 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009649 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9650 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309651 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9652 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +05309653 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9654 MSM_BACKEND_DAI_SLIMBUS_1_TX,
9655 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009657 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9658 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309659 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009661 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9662 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309663 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009665 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9666 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309667 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009669 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9670 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309671 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009673 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9674 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309675 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009677 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9678 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309679 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009681 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_INT_FM_TX,
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("AFE_PCM_TX", SND_SOC_NOPM,
9686 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309687 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009689 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9690 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309691 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009693 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9694 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309695 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009697 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9698 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309699 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009701 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9702 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309703 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009705 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9706 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309707 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009709 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9710 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309711 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009713 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9714 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309715 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009717 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9718 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309719 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009721 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9722 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309723 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009725 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9726 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309727 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009729 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9730 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309731 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009733 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9734 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309735 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009737 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309739 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009741 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309743 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009745 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309747 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009749 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309751 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009753 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9754 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309755 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009757 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9758 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309759 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009761 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9762 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309763 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009765 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9766 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309767 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009769 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9770 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309771 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009773 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9774 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309775 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009777 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9778 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309779 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009781 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9782 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309783 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009785 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9786 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309787 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009789 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9790 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309791 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009793 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9794 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309795 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009797 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9798 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309799 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9800 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309801 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9802 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9803 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9804 msm_routing_put_audio_mixer),
9805 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9806 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9807 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9808 msm_routing_put_audio_mixer),
9809 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9810 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9811 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9812 msm_routing_put_audio_mixer),
9813 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9814 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9815 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9816 msm_routing_put_audio_mixer),
9817 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9818 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9819 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9820 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009821 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9822 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9823 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9824 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309825 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9826 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9827 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9828 msm_routing_put_audio_mixer),
9829 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9830 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9831 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9832 msm_routing_put_audio_mixer),
9833 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9834 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9835 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9836 msm_routing_put_audio_mixer),
9837 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9838 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9839 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9840 msm_routing_put_audio_mixer),
9841 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9842 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9843 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9844 msm_routing_put_audio_mixer),
9845 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9846 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9847 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9848 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009849 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9850 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9851 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9852 msm_routing_put_audio_mixer),
9853 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9854 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9855 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9856 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309857 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9858 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9859 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9860 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309861 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9862 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9863 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9864 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309865};
9866
9867static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009868 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9869 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309870 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009872 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9873 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309874 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009876 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9877 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309878 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009880 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9881 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309882 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009884 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9885 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309886 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009888 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9889 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309890 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009892 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9893 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309894 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009896 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9897 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309898 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009900 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9901 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309902 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009904 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9905 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309906 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009908 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9909 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309910 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009912 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9913 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309914 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009916 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9917 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309918 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009920 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9921 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309922 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009924 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9925 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309926 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009928 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9929 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309930 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009932 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9933 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309934 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009936 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9937 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309938 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009940 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9941 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309942 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009944 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9945 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309946 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009948 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9949 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309950 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009952 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9953 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309954 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009956 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9957 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309958 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009960 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9961 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309962 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009964 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9965 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309966 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009968 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9969 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309970 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009972 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9973 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309974 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009976 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9977 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309978 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009980 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9981 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309982 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009984 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9985 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309986 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009988 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9989 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309990 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009992 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9993 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309994 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009996 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9997 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309998 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010000 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10001 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010002 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10003 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010004 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10005 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10006 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10007 msm_routing_put_audio_mixer),
10008 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10009 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10010 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10011 msm_routing_put_audio_mixer),
10012 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10013 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10014 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10015 msm_routing_put_audio_mixer),
10016 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10017 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10018 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10019 msm_routing_put_audio_mixer),
10020 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10021 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10022 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10023 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010024 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10025 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10026 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10027 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010028 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10029 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10030 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10031 msm_routing_put_audio_mixer),
10032 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10033 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10034 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10035 msm_routing_put_audio_mixer),
10036 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10037 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10038 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10039 msm_routing_put_audio_mixer),
10040 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10041 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10042 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10043 msm_routing_put_audio_mixer),
10044 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10045 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10046 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10047 msm_routing_put_audio_mixer),
10048 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10049 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10050 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10051 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010052 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10053 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10054 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10055 msm_routing_put_audio_mixer),
10056 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10057 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10058 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10059 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010060 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10061 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10062 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10063 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010064 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10065 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10066 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10067 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010068};
10069
10070static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010071 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10072 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010073 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10074 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010075 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10076 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10077 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010079 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10080 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010081 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010083 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10084 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010085 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010087 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10088 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010089 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010091 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10092 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010093 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010095 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10096 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010097 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010099 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10100 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010101 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010103 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10104 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010105 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010107 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10108 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010109 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010111 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10112 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010113 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010115 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10116 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010117 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010119 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10120 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010121 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010123 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10124 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010125 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010127 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10128 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010129 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010131 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10132 MSM_BACKEND_DAI_PRI_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("PRI_TDM_TX_1", SND_SOC_NOPM,
10136 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010137 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010139 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10140 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010141 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010143 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10144 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010145 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010147 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10148 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010149 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010151 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10152 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010153 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010155 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10156 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010157 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010159 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10160 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010161 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010163 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10164 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010165 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010167 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10168 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010169 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010171 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10172 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010173 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010175 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10176 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010177 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010179 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10180 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010181 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010183 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10184 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010185 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010187 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10188 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010189 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010191 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10192 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010193 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010195 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10196 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010197 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010199 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10200 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010201 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010203 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10204 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010205 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010207 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10208 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010209 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10210 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010211 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10212 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10213 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10214 msm_routing_put_audio_mixer),
10215 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10216 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10217 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10218 msm_routing_put_audio_mixer),
10219 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10220 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10221 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10222 msm_routing_put_audio_mixer),
10223 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10224 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10225 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10226 msm_routing_put_audio_mixer),
10227 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10228 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10229 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10230 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010231 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10232 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10233 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10234 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010235 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10236 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10237 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10238 msm_routing_put_audio_mixer),
10239 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10240 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10241 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10242 msm_routing_put_audio_mixer),
10243 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10244 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10245 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10246 msm_routing_put_audio_mixer),
10247 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10248 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10249 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10250 msm_routing_put_audio_mixer),
10251 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10252 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10253 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10254 msm_routing_put_audio_mixer),
10255 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10256 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10257 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10258 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010259 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10260 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10261 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10262 msm_routing_put_audio_mixer),
10263 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10264 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10265 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10266 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010267 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10268 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10269 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10270 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010271};
10272
10273static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010274 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10275 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010276 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10277 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010278 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10279 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10280 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010282 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10283 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010284 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010286 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10287 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010288 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010290 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10291 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010292 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010294 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10295 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010296 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010298 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10299 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010300 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010302 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10303 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010304 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010306 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10307 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010308 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010310 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10311 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010312 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010314 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10315 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010316 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010318 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10319 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010320 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010322 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10323 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010324 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010326 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10327 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010328 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010330 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10331 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010332 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010334 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10335 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010336 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010338 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10339 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010340 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010342 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10343 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010344 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010346 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10347 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010348 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010350 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10351 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010352 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010354 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10355 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010356 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010358 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10359 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010360 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010362 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10363 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010364 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010366 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10367 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010368 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010370 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10371 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010372 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010374 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10375 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010376 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010378 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10379 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010380 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010382 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10383 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010384 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010386 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10387 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010388 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010390 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10391 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010392 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010394 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10395 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010396 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010398 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10399 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010400 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010402 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10403 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010404 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010406 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10407 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010408 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10409 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010410 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10411 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10412 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10413 msm_routing_put_audio_mixer),
10414 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10415 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10416 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10417 msm_routing_put_audio_mixer),
10418 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10419 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10420 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10421 msm_routing_put_audio_mixer),
10422 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10423 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10424 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10425 msm_routing_put_audio_mixer),
10426 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10427 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10428 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10429 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010430 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10431 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10432 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10433 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010434 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10435 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10436 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10437 msm_routing_put_audio_mixer),
10438 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10439 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10440 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10441 msm_routing_put_audio_mixer),
10442 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10443 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10444 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10445 msm_routing_put_audio_mixer),
10446 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10447 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10448 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10449 msm_routing_put_audio_mixer),
10450 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10451 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10452 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10453 msm_routing_put_audio_mixer),
10454 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10455 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10456 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10457 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010458 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10459 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10460 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10461 msm_routing_put_audio_mixer),
10462 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10463 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10464 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10465 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010466 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10467 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10468 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10469 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010470};
10471
10472static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010473 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10474 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010475 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10476 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010477 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10478 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10479 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010481 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10482 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010483 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010485 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10486 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010487 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010489 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10490 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010491 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010493 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10494 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010495 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010497 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10498 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010499 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010501 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10502 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010503 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010505 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10506 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010507 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010509 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10510 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010511 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010513 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10514 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010515 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010517 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10518 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010519 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010521 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10522 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010523 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010525 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10526 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010527 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010529 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10530 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010531 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010533 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10534 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010535 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010537 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10538 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010539 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010541 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10542 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010543 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010545 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10546 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010547 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010549 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10550 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010551 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010553 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10554 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010555 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010557 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10558 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010559 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010561 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10562 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010563 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010565 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10566 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010567 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010569 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10570 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010571 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010573 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10574 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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("TERT_TDM_TX_3", SND_SOC_NOPM,
10578 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010579 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010581 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10582 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010583 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010585 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10586 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010587 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010589 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10590 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010591 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010593 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10594 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010595 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010597 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10598 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010599 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010601 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10602 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010603 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010605 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10606 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010607 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010609 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10610 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010611 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010613 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10614 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010615 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010617 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10618 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010619 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010621 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10622 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010623 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010625 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10626 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010627 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010629 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10630 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010631 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10632 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010633 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10634 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10635 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10636 msm_routing_put_audio_mixer),
10637 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10638 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10639 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10640 msm_routing_put_audio_mixer),
10641 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10642 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10643 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10644 msm_routing_put_audio_mixer),
10645 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10646 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10647 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10648 msm_routing_put_audio_mixer),
10649 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10650 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10651 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10652 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010653 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10654 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10655 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10656 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010657 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10658 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10659 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10660 msm_routing_put_audio_mixer),
10661 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10662 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10663 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10664 msm_routing_put_audio_mixer),
10665 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10666 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10667 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10668 msm_routing_put_audio_mixer),
10669 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10670 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10671 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10672 msm_routing_put_audio_mixer),
10673 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10674 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10675 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10676 msm_routing_put_audio_mixer),
10677 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10678 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10679 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10680 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010681 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10682 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10683 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10684 msm_routing_put_audio_mixer),
10685 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10686 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10687 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10688 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010689 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10690 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10691 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10692 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010693 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10694 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10695 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10696 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010697};
10698
10699static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010700 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10701 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010702 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010704 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10705 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010706 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10707 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010708 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10709 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10710 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010712 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10713 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010714 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010716 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10717 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010718 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010720 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10721 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010722 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010724 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10725 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010726 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010728 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10729 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010730 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010732 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10733 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010734 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010736 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10737 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010738 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010740 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10741 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010742 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010744 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10745 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010746 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010748 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10749 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010750 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010752 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10753 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010754 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010756 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10757 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010758 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010760 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10761 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010762 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010764 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10765 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010766 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010768 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10769 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010770 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010772 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10773 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010774 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010776 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10777 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010778 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010780 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10781 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010782 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010784 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10785 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010786 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010788 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10789 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010790 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010792 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10793 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010794 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010796 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10797 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010798 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010800 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10801 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010802 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010804 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10805 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010806 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010808 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10809 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010810 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010812 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10813 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010814 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010816 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10817 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010818 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010820 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10821 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010822 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010824 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10825 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010826 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010828 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10829 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010830 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010832 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10833 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010834 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010836 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10837 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010838 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10839 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010840 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10841 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10842 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10843 msm_routing_put_audio_mixer),
10844 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10845 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10846 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10847 msm_routing_put_audio_mixer),
10848 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10849 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10850 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10851 msm_routing_put_audio_mixer),
10852 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10853 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10854 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10855 msm_routing_put_audio_mixer),
10856 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10857 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10858 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10859 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010860 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10861 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10862 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10863 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010864 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10865 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10866 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10867 msm_routing_put_audio_mixer),
10868 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10869 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10870 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10871 msm_routing_put_audio_mixer),
10872 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10873 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10874 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10875 msm_routing_put_audio_mixer),
10876 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10877 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10878 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10879 msm_routing_put_audio_mixer),
10880 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10881 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10882 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10883 msm_routing_put_audio_mixer),
10884 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10885 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10886 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10887 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010888 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10889 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10890 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10891 msm_routing_put_audio_mixer),
10892 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10893 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10894 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10895 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010896 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10897 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10898 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10899 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010900};
10901
10902static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010903 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10904 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010905 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10906 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010907 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10908 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10909 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010911 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10912 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010913 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010915 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10916 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010917 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010919 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10920 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010921 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010923 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10924 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010925 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010927 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10928 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010929 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010931 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10932 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010933 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010935 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10936 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010937 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010939 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10940 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010941 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010943 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10944 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010945 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010947 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10948 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010949 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010951 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10952 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010953 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010955 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10956 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010957 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010959 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10960 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010961 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010963 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10964 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010965 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010967 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10968 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010969 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010971 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10972 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010973 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010975 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10976 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010977 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010979 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10980 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010981 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010983 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10984 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010985 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010987 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10988 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010989 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010991 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10992 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010993 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010995 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10996 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010997 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010999 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11000 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011001 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011003 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11004 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011005 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011007 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11008 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011009 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011011 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11012 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011013 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011015 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11016 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011017 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011019 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11020 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011021 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011023 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11024 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011025 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011027 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11028 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011029 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011031 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011033 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011035 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11036 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011037 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011039 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11040 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011041 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011043 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11044 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011045 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11046 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011047 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11048 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11049 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11050 msm_routing_put_audio_mixer),
11051 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11052 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11053 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11054 msm_routing_put_audio_mixer),
11055 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11056 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11057 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11058 msm_routing_put_audio_mixer),
11059 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11060 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11061 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11062 msm_routing_put_audio_mixer),
11063 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11064 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11065 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11066 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011067 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11068 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11069 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11070 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011071 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11072 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11073 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11074 msm_routing_put_audio_mixer),
11075 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11076 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11077 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11078 msm_routing_put_audio_mixer),
11079 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11080 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11081 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11082 msm_routing_put_audio_mixer),
11083 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11084 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11085 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11086 msm_routing_put_audio_mixer),
11087 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11089 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11090 msm_routing_put_audio_mixer),
11091 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11092 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11093 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11094 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011095 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11096 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11097 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11098 msm_routing_put_audio_mixer),
11099 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11100 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11101 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11102 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011103 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11104 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11105 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11106 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011107 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11108 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11109 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11110 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011111};
11112
Asish Bhattacharya34504582017-08-08 12:55:01 +053011113static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011114 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11115 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011116 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11117 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011118 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11119 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11120 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011122 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11123 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011124 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011126 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11127 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011128 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011130 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11131 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011132 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011134 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11135 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011136 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011138 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11139 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011140 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011142 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11143 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011144 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011146 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11147 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011148 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011150 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11151 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011152 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011154 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11155 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011156 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011158 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11159 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011160 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011162 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11163 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011164 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011166 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11167 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011168 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011170 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11171 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011172 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011174 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11175 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011176 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011178 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11179 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011180 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011182 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11183 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011184 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011186 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11187 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011188 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011190 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11191 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011192 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011194 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11195 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011196 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011198 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11199 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011200 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011202 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11203 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011204 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011206 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11207 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011208 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011210 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11211 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011212 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011214 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011216 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011218 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11219 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011220 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011222 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011224 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011226 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011228 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011230 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11231 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011232 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011234 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11235 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011236 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011238 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011240 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011242 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011244 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011246 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11247 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011248 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011250 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11251 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011252 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011254 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11255 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011256 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11257 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011258 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11259 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11260 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11261 msm_routing_put_audio_mixer),
11262 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11263 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11264 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11265 msm_routing_put_audio_mixer),
11266 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11267 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11268 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11269 msm_routing_put_audio_mixer),
11270 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11271 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11272 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11273 msm_routing_put_audio_mixer),
11274 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11275 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11276 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11277 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011278 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11279 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11280 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11281 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011282 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11283 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11284 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11285 msm_routing_get_audio_mixer,
11286 msm_routing_put_audio_mixer),
11287 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11288 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11289 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11290 msm_routing_get_audio_mixer,
11291 msm_routing_put_audio_mixer),
11292 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11293 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11294 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11295 msm_routing_get_audio_mixer,
11296 msm_routing_put_audio_mixer),
11297 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11298 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11299 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11300 msm_routing_get_audio_mixer,
11301 msm_routing_put_audio_mixer),
11302 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11303 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11304 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11305 msm_routing_get_audio_mixer,
11306 msm_routing_put_audio_mixer),
11307 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11308 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11309 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11310 msm_routing_get_audio_mixer,
11311 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011312 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11313 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11314 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11315 msm_routing_put_audio_mixer),
11316 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11317 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11318 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11319 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011320 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11321 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11322 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11323 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011324 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11325 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11326 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11327 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053011328};
11329
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011330static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011331 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11332 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011333 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11334 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011335 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11336 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11337 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011339 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011341 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011343 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11344 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011345 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011347 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11348 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011349 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011351 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11352 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("VOC_REC_DL", SND_SOC_NOPM,
11356 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011357 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011359 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11360 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011361 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011363 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11364 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011365 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011367 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11368 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011369 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011371 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11372 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011373 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011375 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11376 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011377 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011379 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11380 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011381 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011383 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11384 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011385 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011387 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11388 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011389 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011391 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11392 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011393 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011395 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11396 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011397 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011399 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11400 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011401 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011403 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11404 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011405 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011407 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11408 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011409 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011411 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11412 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011413 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11414 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011415 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11416 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11417 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11418 msm_routing_put_audio_mixer),
11419 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11420 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11421 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11422 msm_routing_put_audio_mixer),
11423 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11424 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11425 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11426 msm_routing_put_audio_mixer),
11427 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11428 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11429 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11430 msm_routing_put_audio_mixer),
11431 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11432 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11433 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11434 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011435 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11436 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11437 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11438 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011439 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11440 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11441 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11442 msm_routing_put_audio_mixer),
11443 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11444 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11445 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11446 msm_routing_put_audio_mixer),
11447 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11448 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11449 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11450 msm_routing_put_audio_mixer),
11451 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11452 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11453 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11454 msm_routing_put_audio_mixer),
11455 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11456 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11457 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11458 msm_routing_put_audio_mixer),
11459 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11460 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11461 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11462 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011463 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11464 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11465 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11466 msm_routing_put_audio_mixer),
11467 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11468 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11469 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11470 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011471 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11472 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11473 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11474 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011475};
11476
Laxminath Kasam38070be2017-08-17 18:21:59 +053011477static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011478 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11479 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011480 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11481 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011482 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11483 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11484 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011486 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11487 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011488 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011490 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11491 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011492 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011494 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11495 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011496 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011498 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11499 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011500 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011502 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011504 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011506 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11507 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011508 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011510 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11511 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011512 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011514 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011516 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011518 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011520 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011522 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11523 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011524 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011526 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11527 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011528 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011530 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11531 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011532 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011534 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11535 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011536 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011538 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11539 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011540 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011542 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11543 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011544 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011546 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11547 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011548 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011550 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11551 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011552 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011554 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11555 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011556 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011558 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11559 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011560 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011562 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11563 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011564 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011566 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11567 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011568 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011570 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11571 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011572 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011574 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11575 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011576 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011578 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11579 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011580 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011582 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11583 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011584 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11585 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011586 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11587 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11588 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11589 msm_routing_put_audio_mixer),
11590 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11591 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11592 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11593 msm_routing_put_audio_mixer),
11594 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11595 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11596 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11597 msm_routing_put_audio_mixer),
11598 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11599 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11600 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11601 msm_routing_put_audio_mixer),
11602 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11603 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11604 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11605 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011606 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11607 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11608 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11609 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011610 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11611 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11612 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11613 msm_routing_get_audio_mixer,
11614 msm_routing_put_audio_mixer),
11615 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11617 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11618 msm_routing_get_audio_mixer,
11619 msm_routing_put_audio_mixer),
11620 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11621 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11622 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11623 msm_routing_get_audio_mixer,
11624 msm_routing_put_audio_mixer),
11625 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11626 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11627 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11628 msm_routing_get_audio_mixer,
11629 msm_routing_put_audio_mixer),
11630 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11631 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11632 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11633 msm_routing_get_audio_mixer,
11634 msm_routing_put_audio_mixer),
11635 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11636 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11637 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11638 msm_routing_get_audio_mixer,
11639 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011640 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11641 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11642 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11643 msm_routing_put_audio_mixer),
11644 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11645 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11646 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11647 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011648 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11649 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11650 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11651 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011652 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11653 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11654 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11655 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011656};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011657static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011658 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011660 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011662 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11664 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011666 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011668 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011670 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011672 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011674 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011676 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011678 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011680 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011682 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011684 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011686 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011688 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011690 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11691 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011692 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11693 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011694 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11695 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11696 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11697 msm_routing_put_audio_mixer),
11698 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11699 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11700 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11701 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011702 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11703 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11704 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
11706 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11708 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11709 msm_routing_put_audio_mixer),
11710 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11711 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11712 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11713 msm_routing_put_audio_mixer),
11714 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11715 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11716 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11717 msm_routing_put_audio_mixer),
11718 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11719 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11720 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11721 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011722 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11723 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11724 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11725 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011726 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11727 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11728 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11729 msm_routing_get_audio_mixer,
11730 msm_routing_put_audio_mixer),
11731 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11732 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11733 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11734 msm_routing_get_audio_mixer,
11735 msm_routing_put_audio_mixer),
11736 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11737 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11738 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11739 msm_routing_get_audio_mixer,
11740 msm_routing_put_audio_mixer),
11741 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11742 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11743 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11744 msm_routing_get_audio_mixer,
11745 msm_routing_put_audio_mixer),
11746 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11747 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11748 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11749 msm_routing_get_audio_mixer,
11750 msm_routing_put_audio_mixer),
11751 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11752 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11753 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11754 msm_routing_get_audio_mixer,
11755 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011756 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11757 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11758 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11759 msm_routing_put_audio_mixer),
11760 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11761 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11762 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11763 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011764 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11765 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11766 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11767 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011768};
11769
11770static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011771 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11772 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011773 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11774 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011775 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11776 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11777 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011779 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11780 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011781 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011783 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11784 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011785 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11786 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011787 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11788 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11789 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11790 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011791 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11792 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11793 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011795 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11796 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011797 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011799 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11800 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011801 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011803 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11804 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011805 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011807 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11808 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011809 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011811 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11812 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011813 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011815 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11816 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011817 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11818 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011819 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11820 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11821 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11822 msm_routing_put_audio_mixer),
11823 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11824 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11825 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11826 msm_routing_put_audio_mixer),
11827 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11828 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11829 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11830 msm_routing_put_audio_mixer),
11831 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11832 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11833 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11834 msm_routing_put_audio_mixer),
11835 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11836 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11837 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11838 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011839 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11840 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11841 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11842 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011843 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11844 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11845 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11846 msm_routing_get_audio_mixer,
11847 msm_routing_put_audio_mixer),
11848 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11849 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11850 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11851 msm_routing_get_audio_mixer,
11852 msm_routing_put_audio_mixer),
11853 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11854 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11855 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11856 msm_routing_get_audio_mixer,
11857 msm_routing_put_audio_mixer),
11858 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11859 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11860 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11861 msm_routing_get_audio_mixer,
11862 msm_routing_put_audio_mixer),
11863 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11864 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11865 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11866 msm_routing_get_audio_mixer,
11867 msm_routing_put_audio_mixer),
11868 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11869 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11870 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11871 msm_routing_get_audio_mixer,
11872 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011873 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11874 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11875 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11876 msm_routing_put_audio_mixer),
11877 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11878 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11879 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11880 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011881 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11882 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11883 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11884 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011885};
11886
11887static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011888 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11889 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011890 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11891 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011892 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11894 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011896 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011898 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011900 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11901 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011902 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011904 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11905 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011906 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011908 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11909 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011910 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011912 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11913 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011914 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011916 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11917 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011918 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011920 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11921 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011922 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11923 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010011924 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11926 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11927 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011928 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11929 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11930 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11931 msm_routing_put_audio_mixer),
11932 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11933 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11934 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11935 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011936 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11938 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11939 msm_routing_put_audio_mixer),
11940 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11941 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11942 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11943 msm_routing_put_audio_mixer),
11944 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11946 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11947 msm_routing_put_audio_mixer),
11948 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11949 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11950 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11951 msm_routing_put_audio_mixer),
11952 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11953 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11954 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011956 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11958 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11959 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011960 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11961 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11962 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11963 msm_routing_get_audio_mixer,
11964 msm_routing_put_audio_mixer),
11965 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11966 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11967 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11968 msm_routing_get_audio_mixer,
11969 msm_routing_put_audio_mixer),
11970 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11971 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11972 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11973 msm_routing_get_audio_mixer,
11974 msm_routing_put_audio_mixer),
11975 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11976 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11977 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11978 msm_routing_get_audio_mixer,
11979 msm_routing_put_audio_mixer),
11980 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11981 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11982 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11983 msm_routing_get_audio_mixer,
11984 msm_routing_put_audio_mixer),
11985 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11986 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11987 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11988 msm_routing_get_audio_mixer,
11989 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011990 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11991 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11992 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11993 msm_routing_put_audio_mixer),
11994 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11995 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11996 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11997 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011998 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11999 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12000 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12001 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012002};
12003
12004static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012005 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12006 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012007 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012009 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12010 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012011 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012013 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12014 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012015 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012017 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12018 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012019 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012021 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12022 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012023 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012025 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12026 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012027 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012029 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12030 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012031 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012033 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12034 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012035 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012037 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12038 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012039 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012041 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12042 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012043 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012045 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12046 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012047 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012049 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12050 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012051 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012053 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12054 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012055 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012057 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12058 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012059 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012061 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12062 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012063 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012065 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12066 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012067 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012069 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12070 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012071 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012073 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12074 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012075 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012077 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12078 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012079 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012081 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12082 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012083 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012085 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12086 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012087 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012089 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12090 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012091 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012093 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12094 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012095 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012097 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12098 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012099 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012101 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12102 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012103 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12104 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012105 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12106 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12107 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12108 msm_routing_put_audio_mixer),
12109 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12110 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12111 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12112 msm_routing_put_audio_mixer),
12113 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12114 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12115 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12116 msm_routing_put_audio_mixer),
12117 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12118 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12119 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12120 msm_routing_put_audio_mixer),
12121 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12122 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12123 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12124 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012125 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12126 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12127 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12128 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012129 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12130 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12131 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12132 msm_routing_put_audio_mixer),
12133 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12134 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12135 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12136 msm_routing_put_audio_mixer),
12137 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12138 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12139 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12140 msm_routing_put_audio_mixer),
12141 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12142 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12143 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12144 msm_routing_put_audio_mixer),
12145 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12146 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12147 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12148 msm_routing_put_audio_mixer),
12149 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12150 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12151 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12152 msm_routing_put_audio_mixer),
12153 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12154 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12155 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12156 msm_routing_put_audio_mixer),
12157 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12158 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12159 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12160 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012161 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12162 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12163 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12164 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070012165};
12166
12167static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
12168 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12169 MSM_BACKEND_DAI_AUXPCM_TX,
12170 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12171 msm_routing_put_audio_mixer),
12172 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12173 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
12174 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12175 msm_routing_put_audio_mixer),
12176 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12177 MSM_BACKEND_DAI_PRI_TDM_TX_0,
12178 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12179 msm_routing_put_audio_mixer),
12180 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12181 MSM_BACKEND_DAI_PRI_TDM_TX_1,
12182 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12183 msm_routing_put_audio_mixer),
12184 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12185 MSM_BACKEND_DAI_PRI_TDM_TX_2,
12186 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12187 msm_routing_put_audio_mixer),
12188 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12189 MSM_BACKEND_DAI_PRI_TDM_TX_3,
12190 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12191 msm_routing_put_audio_mixer),
12192 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12193 MSM_BACKEND_DAI_SEC_TDM_TX_0,
12194 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12195 msm_routing_put_audio_mixer),
12196 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12197 MSM_BACKEND_DAI_SEC_TDM_TX_1,
12198 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12199 msm_routing_put_audio_mixer),
12200 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12201 MSM_BACKEND_DAI_SEC_TDM_TX_2,
12202 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12203 msm_routing_put_audio_mixer),
12204 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12205 MSM_BACKEND_DAI_SEC_TDM_TX_3,
12206 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12207 msm_routing_put_audio_mixer),
12208 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12209 MSM_BACKEND_DAI_TERT_TDM_TX_0,
12210 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12211 msm_routing_put_audio_mixer),
12212 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12213 MSM_BACKEND_DAI_TERT_TDM_TX_1,
12214 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12215 msm_routing_put_audio_mixer),
12216 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12217 MSM_BACKEND_DAI_TERT_TDM_TX_2,
12218 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12219 msm_routing_put_audio_mixer),
12220 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12221 MSM_BACKEND_DAI_TERT_TDM_TX_3,
12222 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12223 msm_routing_put_audio_mixer),
12224 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12225 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
12226 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12227 msm_routing_put_audio_mixer),
12228 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12229 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
12230 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12231 msm_routing_put_audio_mixer),
12232 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12233 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
12234 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12235 msm_routing_put_audio_mixer),
12236 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12237 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
12238 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12239 msm_routing_put_audio_mixer),
12240 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12241 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
12242 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12243 msm_routing_put_audio_mixer),
12244 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12245 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
12246 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12247 msm_routing_put_audio_mixer),
12248 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12249 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
12250 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12251 msm_routing_put_audio_mixer),
12252 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12253 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
12254 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12255 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012256 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012257 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12258 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012259 msm_routing_put_audio_mixer),
12260 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012261 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12262 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012263 msm_routing_put_audio_mixer),
12264 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012265 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12266 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012267 msm_routing_put_audio_mixer),
12268 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012269 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12270 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012271 msm_routing_put_audio_mixer),
12272 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012273 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12274 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012275 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012276 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12277 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12278 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12279 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012280 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012281 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12282 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12283 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012284 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012285 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12286 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12287 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012288 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012289 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12290 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12291 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012292 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012293 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12294 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12295 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012296 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012297 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12298 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12299 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012300 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012301 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12302 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12303 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012304 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12305 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012306 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012307 msm_routing_put_audio_mixer),
12308 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12309 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012310 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012311 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012312 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12313 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12314 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12315 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012316};
12317
Surendar Karkac1cde372018-08-14 18:56:24 +053012318static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
12319 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12320 MSM_BACKEND_DAI_SLIMBUS_0_TX,
12321 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12322 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012323 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12324 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12325 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12326 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012327 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12328 MSM_BACKEND_DAI_SLIMBUS_6_TX,
12329 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12330 msm_routing_put_audio_mixer),
12331 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12332 MSM_BACKEND_DAI_SLIMBUS_7_TX,
12333 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12334 msm_routing_put_audio_mixer),
12335 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12336 MSM_BACKEND_DAI_PRI_MI2S_TX,
12337 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12338 msm_routing_put_audio_mixer),
12339 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12340 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12341 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12342 msm_routing_put_audio_mixer),
12343 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12344 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12345 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12346 msm_routing_put_audio_mixer),
12347 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12348 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12349 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12350 msm_routing_put_audio_mixer),
12351 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12352 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
12353 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12354 msm_routing_put_audio_mixer),
12355 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12356 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12357 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12358 msm_routing_put_audio_mixer),
12359 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12360 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12361 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12362 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012363 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12364 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12365 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12366 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012367 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12368 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12369 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12370 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012371};
12372
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012373static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012374 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12375 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012376 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12377 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012378 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12380 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012382 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12383 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012384 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012386 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12387 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012388 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012390 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12391 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012392 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012394 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12395 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012396 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012398 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12399 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012400 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012402 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12403 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012404 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012406 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12407 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012408 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12409 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012410 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12411 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12412 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12413 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012414 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12415 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12416 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12417 msm_routing_put_audio_mixer),
12418 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12419 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12420 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12421 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012422 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12423 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12424 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12425 msm_routing_put_audio_mixer),
12426 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12427 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12428 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12429 msm_routing_put_audio_mixer),
12430 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12431 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12432 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12433 msm_routing_put_audio_mixer),
12434 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12435 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12436 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12437 msm_routing_put_audio_mixer),
12438 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12439 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12440 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12441 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012442 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12443 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12444 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12445 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012446 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12447 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12448 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12449 msm_routing_get_audio_mixer,
12450 msm_routing_put_audio_mixer),
12451 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12452 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12453 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12454 msm_routing_get_audio_mixer,
12455 msm_routing_put_audio_mixer),
12456 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12457 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12458 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12459 msm_routing_get_audio_mixer,
12460 msm_routing_put_audio_mixer),
12461 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12462 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12463 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12464 msm_routing_get_audio_mixer,
12465 msm_routing_put_audio_mixer),
12466 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12468 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12469 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_MULTIMEDIA28, 1, 0,
12474 msm_routing_get_audio_mixer,
12475 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012476 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12477 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12478 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12479 msm_routing_put_audio_mixer),
12480 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12481 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12482 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12483 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012484 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12485 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12486 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12487 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012488};
12489
12490static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012491 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12492 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012493 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12494 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012495 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12496 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12497 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012499 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12500 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012501 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012503 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12504 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012505 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012507 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12508 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012509 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012511 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12512 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012513 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012515 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12516 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012517 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012519 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12520 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012521 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012523 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12524 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012525 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12526 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012527 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12528 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12529 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12530 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012531 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12532 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12533 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12534 msm_routing_put_audio_mixer),
12535 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12536 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12537 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12538 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012539 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12540 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12541 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12542 msm_routing_put_audio_mixer),
12543 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12544 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12545 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12546 msm_routing_put_audio_mixer),
12547 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12548 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12549 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12550 msm_routing_put_audio_mixer),
12551 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12552 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12553 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12554 msm_routing_put_audio_mixer),
12555 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12556 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12557 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12558 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012559 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12560 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12561 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12562 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012563 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12564 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12565 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12566 msm_routing_get_audio_mixer,
12567 msm_routing_put_audio_mixer),
12568 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12570 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12571 msm_routing_get_audio_mixer,
12572 msm_routing_put_audio_mixer),
12573 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12574 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12575 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12576 msm_routing_get_audio_mixer,
12577 msm_routing_put_audio_mixer),
12578 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12579 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12580 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12581 msm_routing_get_audio_mixer,
12582 msm_routing_put_audio_mixer),
12583 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12584 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12585 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12586 msm_routing_get_audio_mixer,
12587 msm_routing_put_audio_mixer),
12588 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12589 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12590 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12591 msm_routing_get_audio_mixer,
12592 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012593 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12594 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12595 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12596 msm_routing_put_audio_mixer),
12597 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12598 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12599 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12600 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012601 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12602 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12603 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12604 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012605};
12606
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012607static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012608 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12609 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012610 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12611 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012612 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012614 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12615 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012616 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12617 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012618 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12619 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012620 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12621 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012622 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12623 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012624 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12625 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012626 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12627 msm_routing_put_voice_mixer),
12628};
12629
12630static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012631 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12632 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012633 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12634 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012635 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12636 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012637 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12638 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012639 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12640 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012641 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12642 msm_routing_put_voice_mixer),
12643};
12644
12645static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012646 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12647 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012648 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12649 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012650 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12651 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012652 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12653 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012654 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12655 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012656 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12657 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012658 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12659 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012660 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12661 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012662 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12663 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012664 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12665 msm_routing_put_voice_mixer),
12666};
12667
12668static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012669 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12670 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012671 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12672 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012673 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12674 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012675 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12676 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012677 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12678 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012679 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12680 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012681 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12682 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012683 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12684 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012685 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12686 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012687 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12688 msm_routing_put_voice_mixer),
12689};
12690
12691static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012692 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12693MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012694 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12695 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012696 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12697MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012698 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12699 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012700 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12701MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012702 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12703 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012704 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12705MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012706 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12707 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012708 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12709MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012710 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12711 msm_routing_put_voice_mixer),
12712};
12713
12714static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012715 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12716 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012717 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12718 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012719 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12720 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012721 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12722 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012723 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12724 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012725 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12726 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012727 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12728 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012729 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12730 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012731 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12732 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012733 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12734 msm_routing_put_voice_mixer),
12735};
12736
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012737static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012738 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12739MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012740 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12741 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012742 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12743MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012744 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12745 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012746 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12747MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012748 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12749 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012750 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12751MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012752 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12753 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012754 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12755MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012756 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12757 msm_routing_put_voice_mixer),
12758};
12759
Karthikeyan Mani57550082018-05-03 18:43:58 -070012760static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12761 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12762 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12763 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12764 msm_routing_put_voice_mixer),
12765 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12766 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12767 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12768 msm_routing_put_voice_mixer),
12769 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12770 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12771 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12772 msm_routing_put_voice_mixer),
12773 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12774 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12775 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12776 msm_routing_put_voice_mixer),
12777 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12778 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12779 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12780 msm_routing_put_voice_mixer),
12781};
12782
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012783static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012784 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12785 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012786 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12787 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012788 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12789 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012790 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12791 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012792 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12793 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012794 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12795 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012796 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12797 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012798 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12799 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012800 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12801 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012802 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12803 msm_routing_put_voice_mixer),
12804};
12805
12806static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012807 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12808 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012809 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12810 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012811 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12812 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012813 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12814 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012815 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12816 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012817 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12818 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012819 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12820 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012821 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12822 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012823 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12824 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012825 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12826 msm_routing_put_voice_mixer),
12827};
12828
12829static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012830 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12831MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012832 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12833 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012834 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12835MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012836 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12837 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012838 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12839MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012840 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12841 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012842 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12843MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012844 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12845 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012846 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12847MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012848 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12849 msm_routing_put_voice_mixer),
12850};
12851
12852static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012853 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12854MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012855 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12856 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012857 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12858MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012859 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12860 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012861 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12862MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012863 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12864 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012865 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12866MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012867 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12868 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012869 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12870MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012871 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12872 msm_routing_put_voice_mixer),
12873};
12874
12875static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012876 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12877 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012878 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12879 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012880 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12881 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012882 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12883 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012884 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12885 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012886 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12887 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012888 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12889 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012890 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12891 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012892 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12893 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012894 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12895 msm_routing_put_voice_mixer),
12896};
12897
12898static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012899 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12900 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012901 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12902 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012903 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12904 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012905 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12906 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012907 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12908 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012909 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12910 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012911 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12912 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012913 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12914 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012915 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12916 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012917 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12918 msm_routing_put_voice_mixer),
12919};
12920
12921static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012922 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12923 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012924 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12925 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012926 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12927 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012928 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12929 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012930 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12931 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012932 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12933 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012934 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12935 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012936 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12937 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012938 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12939 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012940 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12941 msm_routing_put_voice_mixer),
12942};
12943
12944static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012945 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12946 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012947 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12948 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012949 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12950 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012951 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12952 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012953 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12954 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012955 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12956 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012957 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12958 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012959 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12960 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012961 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12962 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012963 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12964 msm_routing_put_voice_mixer),
12965};
12966
12967static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012968 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12969 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012970 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12971 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012972 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12973 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012974 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12975 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012976 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012978 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12979 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012980 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12981 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012982 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12983 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012984 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12985 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012986 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12987 msm_routing_put_voice_mixer),
12988};
12989
12990static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012991 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12992 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012993 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12994 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012995 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12996 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012997 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12998 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012999 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13000 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013001 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13002 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013003 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13004 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013005 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13006 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013007 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13008 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013009 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13010 msm_routing_put_voice_mixer),
13011};
13012
13013static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013014 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13015MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013016 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13017 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013018 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13019MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013020 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13021 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013022 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13023MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013024 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13025 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013026 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13027MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013028 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13029 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013030 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13031MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013032 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13033 msm_routing_put_voice_mixer),
13034};
13035
13036static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013037 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13038MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013039 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13040 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013041 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13042MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013043 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13044 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013045 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13046MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013047 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13048 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013049 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13050MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013051 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13052 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013053 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13054MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013055 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13056 msm_routing_put_voice_mixer),
13057};
13058
13059static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013060 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13061MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013062 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13063 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013064 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13065MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013066 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13067 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013068 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13069MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013070 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13071 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013072 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13073MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013074 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13075 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013076 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13077MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013078 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13079 msm_routing_put_voice_mixer),
13080};
13081
Rohit Kumara5077932017-09-10 22:05:05 +053013082static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013083 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13084MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013085 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13086 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013087 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13088MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013089 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13090 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013091 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13092MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013093 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13094 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013095 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13096MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013097 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13098 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013099 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13100MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013101 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13102 msm_routing_put_voice_mixer),
13103};
13104
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013105static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013106 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13107 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013108 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13109 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013110 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13111 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013112 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13113 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013114 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13115 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013116 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13117 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013118 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13119 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013120 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13121 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013122 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13123 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013124 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13125 msm_routing_put_voice_mixer),
13126};
13127
13128static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013129 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13130MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013131 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13132 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013133 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13134MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013135 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13136 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013137 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13138MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013139 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13140 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013141 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13142MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013143 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13144 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013145 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13146MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013147 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13148 msm_routing_put_voice_mixer),
13149};
13150
13151static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013152 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13153 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013154 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13155 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013156 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13157 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013158 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13159 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013160 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13161 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013162 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13163 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013164 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13165 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013166 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13167 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013168 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13169 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013170 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13171 msm_routing_put_voice_mixer),
13172};
13173
13174static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013175 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13176 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013177 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13178 msm_routing_put_voice_mixer),
13179};
13180
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013181static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
13182 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13183 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13184 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13185 msm_routing_put_voice_mixer),
13186 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13187 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13188 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13189 msm_routing_put_voice_mixer),
13190 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13191 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13192 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13193 msm_routing_put_voice_mixer),
13194 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13195 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13196 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13197 msm_routing_put_voice_mixer),
13198 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13199 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13200 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13201 msm_routing_put_voice_mixer),
13202};
13203
13204static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
13205 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13206 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13207 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13208 msm_routing_put_voice_mixer),
13209 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13210 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13211 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13212 msm_routing_put_voice_mixer),
13213 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13214 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13215 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13216 msm_routing_put_voice_mixer),
13217 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13219 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13220 msm_routing_put_voice_mixer),
13221 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13223 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13224 msm_routing_put_voice_mixer),
13225};
13226
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013227static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
13228 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13229 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13230 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13231 msm_routing_put_voice_mixer),
13232 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13233 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13234 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13235 msm_routing_put_voice_mixer),
13236 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13237 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13238 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13239 msm_routing_put_voice_mixer),
13240 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13241 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13242 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13243 msm_routing_put_voice_mixer),
13244 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13245 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13246 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13247 msm_routing_put_voice_mixer),
13248};
13249
13250static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
13251 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13252 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13253 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13254 msm_routing_put_voice_mixer),
13255 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13256 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13257 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13258 msm_routing_put_voice_mixer),
13259 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13260 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13261 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13262 msm_routing_put_voice_mixer),
13263 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13264 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13265 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13266 msm_routing_put_voice_mixer),
13267 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13268 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13269 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13270 msm_routing_put_voice_mixer),
13271};
13272
13273static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
13274 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13275 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13276 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13277 msm_routing_put_voice_mixer),
13278 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13279 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13280 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13281 msm_routing_put_voice_mixer),
13282 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13283 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13284 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13285 msm_routing_put_voice_mixer),
13286 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13287 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13288 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13289 msm_routing_put_voice_mixer),
13290 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13291 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13292 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13293 msm_routing_put_voice_mixer),
13294};
13295
13296static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
13297 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13298 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13299 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13300 msm_routing_put_voice_mixer),
13301 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13302 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13303 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13304 msm_routing_put_voice_mixer),
13305 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13306 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13307 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13308 msm_routing_put_voice_mixer),
13309 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13310 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13311 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13312 msm_routing_put_voice_mixer),
13313 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13314 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13315 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13316 msm_routing_put_voice_mixer),
13317};
13318
13319static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
13320 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13321 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13322 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13323 msm_routing_put_voice_mixer),
13324 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13325 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13326 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13327 msm_routing_put_voice_mixer),
13328 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13329 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13330 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13331 msm_routing_put_voice_mixer),
13332 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13333 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13334 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13335 msm_routing_put_voice_mixer),
13336 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13337 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13338 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13339 msm_routing_put_voice_mixer),
13340};
13341
13342static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
13343 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13344 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13345 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13346 msm_routing_put_voice_mixer),
13347 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13348 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13349 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13350 msm_routing_put_voice_mixer),
13351 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13352 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13353 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13354 msm_routing_put_voice_mixer),
13355 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13356 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13357 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13358 msm_routing_put_voice_mixer),
13359 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13360 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13361 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13362 msm_routing_put_voice_mixer),
13363};
13364
13365static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
13366 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13367 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13368 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13369 msm_routing_put_voice_mixer),
13370 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13371 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13372 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13373 msm_routing_put_voice_mixer),
13374 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13375 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13376 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13377 msm_routing_put_voice_mixer),
13378 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13379 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13380 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13381 msm_routing_put_voice_mixer),
13382 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13383 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13384 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13385 msm_routing_put_voice_mixer),
13386};
13387
13388static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
13389 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13390 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13391 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13392 msm_routing_put_voice_mixer),
13393 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13394 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13395 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13396 msm_routing_put_voice_mixer),
13397 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13398 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13399 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13400 msm_routing_put_voice_mixer),
13401 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13402 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13403 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13404 msm_routing_put_voice_mixer),
13405 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13406 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13407 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13408 msm_routing_put_voice_mixer),
13409};
13410
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013411static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013412 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13413 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013414 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13415 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013416 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013418 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13419 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013420};
13421
13422static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013423 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13424 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013425 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13426 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013427 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13428 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013429 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13430 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013431};
13432
13433static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013434 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13435 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013436 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13437 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013438 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13439 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013440 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13441 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013442};
13443
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013444static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013445 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
13446 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013447 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13448 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013449 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
13450 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013451 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13452 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013453 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013454 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13455 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013456 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013457 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13458 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013459 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013460 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13461 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013462 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013463 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13464 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013465 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013466 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13467 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013468 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013469 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13470 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013471 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013472 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13473 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013474 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013475 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13476 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013477 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013478 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13479 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013480 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013481 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13482 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013483 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013484 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13485 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013486 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013487 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13488 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013489 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013490 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13491 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013492 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
13493 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013494 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13495 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013496 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
13497MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013498 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013499 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13500 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13501 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13502 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13503 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13504 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013505 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13506 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13507 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013508 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13509 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13510 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13511 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13512 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13513 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13514 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13515 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13516 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13517 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
13518 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13519 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13520 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13521 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13522 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13523 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13524 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13525 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013526};
13527
13528static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013529 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013531 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13532 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013533 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13534 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013535 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13536 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013537 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013538 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13539 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013540 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013541 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13542 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013543 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013544 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13545 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013546 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013547 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13548 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013549 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013550 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13551 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013552 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013553 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13554 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013555 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013556 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13557 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013558 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013559 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13560 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013561 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013562 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13563 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013564 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013565 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13566 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013567 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013568 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13569 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013570 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013571 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13572 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013573 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013574 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13575 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013576 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013577 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13578 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013579 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13580 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13581 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13582 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13583 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13584 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013585 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13587 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013588 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13589 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13590 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13591 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13592 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13593 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13594 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13595 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13596 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13597 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13598 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13599 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13600 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13601 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13602 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13603 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13604 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13605 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013606};
13607
13608static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013609 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13610 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013611 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13612 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013613 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13614 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013615 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13616 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013617 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13618 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013619 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13620 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013621 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13622 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013623 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13624 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013625 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13626 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013627 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13628 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013629 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013631 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13632 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013633 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13634 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013635 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13636 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013637 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13638 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013639 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13640 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013641 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13642 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013643 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13644 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013645 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013647 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13648 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013649 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13650 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013651 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13652 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013653 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13654 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013655 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13656 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013657 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13658 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013659 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13660 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013661 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13662 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013663 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13664 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013665 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13666 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013667 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13668 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013669 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13670 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013671 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13672 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013673 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13674 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13675 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13676 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13677 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13678 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013679 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13680 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13681 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013682 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13683 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13684 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13685 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13686 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13687 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13688 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13689 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13690 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13691 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13692 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13693 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13694 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13695 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13696 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13697 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13698 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13699 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013700};
13701
13702static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013703 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13704 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013705 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13706 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013707 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13708 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013709 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13710 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013711 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13712 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013713 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13714 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013715 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13716 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013717 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13718 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013719 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13720 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013721 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13722 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013723 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13724 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013725 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13726 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013727 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013729 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13730 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013731 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13732 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013733 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13734 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013735 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13736 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013737 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13738 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013739 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13740 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013741 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13742 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013743 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13744 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013745 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13746 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013747 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13748 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013749 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13750 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013751 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13752 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013753 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13754 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013755 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13756 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013757 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13758 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013759 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13760 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013761 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13762 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013763 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13764 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013765 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13766 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013767 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13768 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013769 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13770 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013771 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13772 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013773 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13774 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013775 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13776 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013777 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13778 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013779 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13780 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13781 1, 0, msm_routing_get_voice_stub_mixer,
13782 msm_routing_put_voice_stub_mixer),
13783 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13784 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13785 1, 0, msm_routing_get_voice_stub_mixer,
13786 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013787 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13788 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13789 1, 0, msm_routing_get_voice_stub_mixer,
13790 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013791 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13792 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13793 1, 0, msm_routing_get_voice_stub_mixer,
13794 msm_routing_put_voice_stub_mixer),
13795 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13796 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13797 1, 0, msm_routing_get_voice_stub_mixer,
13798 msm_routing_put_voice_stub_mixer),
13799 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13800 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13801 1, 0, msm_routing_get_voice_stub_mixer,
13802 msm_routing_put_voice_stub_mixer),
13803 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13804 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13805 1, 0, msm_routing_get_voice_stub_mixer,
13806 msm_routing_put_voice_stub_mixer),
13807 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13808 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13809 1, 0, msm_routing_get_voice_stub_mixer,
13810 msm_routing_put_voice_stub_mixer),
13811 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13812 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13813 1, 0, msm_routing_get_voice_stub_mixer,
13814 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013815};
13816
13817static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013818 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13819 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013820 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13821 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013822 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13823 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013824 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13825 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013826 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013828 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13829 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013830 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13831 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013832 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13833 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013834 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013836 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13837 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013838 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13839 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013840 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13841 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013842 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13843 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013844 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13845 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013846 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13847 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013848 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13849 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013850 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13851 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013852 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13853 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013854 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13855 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013856 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13857 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013858 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13859 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013860 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13861 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013862 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13863 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013864 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13865 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013866 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13867 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013868 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13869 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013870 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13871 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013872 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13873 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013874 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13875 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013876 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13877 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013878 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13879 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13880 1, 0, msm_routing_get_voice_stub_mixer,
13881 msm_routing_put_voice_stub_mixer),
13882 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13883 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13884 1, 0, msm_routing_get_voice_stub_mixer,
13885 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013886 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13887 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13888 1, 0, msm_routing_get_voice_stub_mixer,
13889 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013890 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13891 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13892 1, 0, msm_routing_get_voice_stub_mixer,
13893 msm_routing_put_voice_stub_mixer),
13894 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13895 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13896 1, 0, msm_routing_get_voice_stub_mixer,
13897 msm_routing_put_voice_stub_mixer),
13898 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13899 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13900 1, 0, msm_routing_get_voice_stub_mixer,
13901 msm_routing_put_voice_stub_mixer),
13902 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13903 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13904 1, 0, msm_routing_get_voice_stub_mixer,
13905 msm_routing_put_voice_stub_mixer),
13906 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13907 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13908 1, 0, msm_routing_get_voice_stub_mixer,
13909 msm_routing_put_voice_stub_mixer),
13910 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13911 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13912 1, 0, msm_routing_get_voice_stub_mixer,
13913 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013914};
13915
13916static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013917 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13918 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013919 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13920 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013921 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13922 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013923 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13924 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013925 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13926 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013927 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13928 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013929 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13930 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013931 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13932 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013933 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13934 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013935 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13936 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013937 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13938 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013939 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13940 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013941 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13942 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013943 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13944 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013945 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13946 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013947 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13948 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013949 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13950 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013951 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13952 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013953 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13954 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013955 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13956 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013957 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13958 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013959 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13960 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013961 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13962 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013963 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13964 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013965 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13966 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013967 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13968 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013969 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13970 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013971 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13972 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013973 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13974 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013975 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13976 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013977 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13978 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13979 1, 0, msm_routing_get_voice_stub_mixer,
13980 msm_routing_put_voice_stub_mixer),
13981 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13982 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13983 1, 0, msm_routing_get_voice_stub_mixer,
13984 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013985 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13986 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13987 1, 0, msm_routing_get_voice_stub_mixer,
13988 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013989 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13990 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13991 1, 0, msm_routing_get_voice_stub_mixer,
13992 msm_routing_put_voice_stub_mixer),
13993 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13994 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13995 1, 0, msm_routing_get_voice_stub_mixer,
13996 msm_routing_put_voice_stub_mixer),
13997 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13998 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13999 1, 0, msm_routing_get_voice_stub_mixer,
14000 msm_routing_put_voice_stub_mixer),
14001 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14002 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
14003 1, 0, msm_routing_get_voice_stub_mixer,
14004 msm_routing_put_voice_stub_mixer),
14005 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14006 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
14007 1, 0, msm_routing_get_voice_stub_mixer,
14008 msm_routing_put_voice_stub_mixer),
14009 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14010 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
14011 1, 0, msm_routing_get_voice_stub_mixer,
14012 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014013};
14014
14015static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014016 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
14017 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014018 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14019 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014020 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
14021 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014022 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14023 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014024 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
14025 MSM_BACKEND_DAI_INT_BT_SCO_TX,
14026 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014027 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014028 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
14029 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014030 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14031 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014032 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014034 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14035 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014036 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014038 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14039 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014040 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014042 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14043 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014044 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14045 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014046 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14047 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014048 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14049 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014050 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14051 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014052 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
14053 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014054 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14055 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014056 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
14057 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014058 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14059 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014060 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
14061 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014062 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14063 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014064 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
14065 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014066 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14067 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014068 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
14069 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014070 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14071 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014072 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
14073 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014074 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14075 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014076 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
14077 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014078 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14079 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014080 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
14081 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
14082 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14083 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
14084 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
14085 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014086 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
14087 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
14088 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014089 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
14090 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
14091 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14092 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
14093 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
14094 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14095 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
14096 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
14097 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14098 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
14099 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
14100 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14101 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
14102 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
14103 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14104 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
14105 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
14106 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014107};
14108
14109static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014110 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14111 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014112 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014114 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14115 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014116 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014118 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14119 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014120 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014122 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14123 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014124 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014126 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14127 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014128 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014130 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14131 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014132 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014134 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14135 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014136 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014138 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14139 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014140 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014142 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14143 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014144 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014146 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14147 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014148 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14149 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014150 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14151 MSM_BACKEND_DAI_INT0_MI2S_RX,
14152 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14153 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014154};
14155
14156static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014157 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14158 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014159 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014161 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14162 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014163 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014165 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14166 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014167 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014169 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14170 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014171 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014173 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14174 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014175 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014177 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14178 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014179 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014181 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14182 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014183 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014185 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14186 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014187 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014189 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14190 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014191 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014193 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14194 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014195 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14196 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014197 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14198 MSM_BACKEND_DAI_INT4_MI2S_RX,
14199 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14200 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014201};
14202
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014203static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
14204 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14205 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14206 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
14207 msm_routing_put_port_mixer),
14208 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14209 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14210 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
14211 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080014212 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14213 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14214 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14215 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080014216 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14217 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14218 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14219 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014220};
14221
14222static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
14223 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14224 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14225 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
14226 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080014227 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14228 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14229 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14230 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014231 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080014232 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053014233 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14234 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080014235 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14236 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14237 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14238 msm_routing_put_port_mixer),
14239
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014240};
14241
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014242static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014243 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14244 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014245 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014247 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14248 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014249 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014251 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14252 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014253 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014255 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14256 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014257 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014259 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14260 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014261 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014263 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14264 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014265 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014267 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14268 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014269 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014271 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14272 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014273 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014275 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14276 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014277 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014279 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14280 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014281 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14282 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014283 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14284 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014285 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014287 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14288 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014289 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014291 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14292 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014293 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014295 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14296 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014297 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014299 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14300 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014301 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014303 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14304 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014305 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014307 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14308 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014309 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014311 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
14312 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014313 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014315 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
14316 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014317 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014319 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
14320 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014321 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014323 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
14324 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014325 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014327 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
14328 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053014329 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14330 msm_routing_put_port_mixer),
14331 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14332 MSM_BACKEND_DAI_SLIMBUS_0_RX,
14333 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053014334 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014335};
14336
14337static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014338 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14339 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014340 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014342 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14343 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014344 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14345 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014346 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14347 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014348 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14349 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014350 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14351 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014352 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014354 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14355 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014356 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
14357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014358 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14359 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014360 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14361 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014362};
14363
14364static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014365 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14366 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014367 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014369 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14370 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014371 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014373 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14374 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014375 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014377 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14378 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014379 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14380 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014381};
14382
14383static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014384 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14385 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014386 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014388 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14389 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014390 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014392 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14393 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014394 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14395 msm_routing_put_port_mixer),
14396};
14397
14398static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014399 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14400 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014401 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14402 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014403 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14404 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014405 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014407 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14408 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014409 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14410 msm_routing_put_port_mixer),
14411};
14412
Rohit Kumara5077932017-09-10 22:05:05 +053014413static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014414 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14415 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014416 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14417 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014418 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14419 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014420 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014422 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14423 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014424 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14425 msm_routing_put_port_mixer),
14426};
14427
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014428static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014429 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14430 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014431 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014433 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14434 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014435 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
14436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014437 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14438 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014439 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014441 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14442 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014443 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014445 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14446 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014447 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014449 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14450 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014451 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14452 msm_routing_put_port_mixer),
14453};
14454
14455static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014456 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
14457 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014458 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
14459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014460 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14461 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014462 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14463 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014464 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
14465 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014466 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
14467 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014468 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
14469 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014470 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
14471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014472 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
14473 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014474 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
14475 msm_routing_put_port_mixer),
14476};
14477
14478static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014479 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14480 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014481 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014483 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14484 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014485 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014487 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14488 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014489 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014491 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14492 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014493 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014495 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14496 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014497 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014499 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14500 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014501 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14502 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014503 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14504 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014505 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014507 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14508 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014509 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014511 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14512 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014513 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014515 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14516 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014517 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014519 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14520 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014521 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14522 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014523 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14524 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014525 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14526 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014527 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14528 MSM_BACKEND_DAI_SLIMBUS_6_RX,
14529 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14530 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014531};
14532
14533static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014534 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14535 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014536 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014538 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14539 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014540 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14541 msm_routing_put_port_mixer),
14542};
14543
14544static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014545 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14546 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014547 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014549 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14550 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014551 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14552 msm_routing_put_port_mixer),
14553};
14554
14555
14556static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014557 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14558 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014559 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14560 msm_routing_put_port_mixer),
14561};
14562
14563static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014564 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14565 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014566 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14567 msm_routing_put_port_mixer),
14568};
14569
Karthikeyan Mani57550082018-05-03 18:43:58 -070014570static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14571 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14572 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14573 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14574 msm_routing_put_port_mixer),
14575};
14576
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014577static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014578 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14579 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014580 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14581 msm_routing_put_port_mixer),
14582};
14583
14584static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014585 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14586 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014587 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014589 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14590 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014591 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14592 msm_routing_put_port_mixer),
14593};
14594
14595static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014596 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14597 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014598 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014600 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14601 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014602 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014604 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14605 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014606 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014608 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14609 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014610 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014612 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14613 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014614 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014616 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14617 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014618 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014620 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14621 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014622 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14623 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014624 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14625 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014626 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014628 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14629 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014630 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014632 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14633 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014634 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14635 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014636};
14637
14638static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014639 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14640 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014641 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14642 msm_routing_put_port_mixer),
14643};
14644
14645static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014646 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14647 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014648 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014650 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14651 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014652 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14653 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014654 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14655 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014656 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014658 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14659 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014660 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014662 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14663 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014664 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014666 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14667 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014668 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014670 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14671 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014672 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14673 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014674 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14675 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014676 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014678 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14679 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014680 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14681 msm_routing_put_port_mixer),
14682};
14683
Rohit Kumara5077932017-09-10 22:05:05 +053014684static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014685 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14686 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014687 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14688 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014689 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14690 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014691 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014693 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14694 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014695 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014697 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14698 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014699 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014701 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014703 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14704 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014705 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14706 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014707 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14708 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014709 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14710 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014711 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14712 msm_routing_put_port_mixer),
14713};
14714
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014715static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014716 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14717 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014718 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14719 msm_routing_get_port_mixer,
14720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014721 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014723 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14724 msm_routing_get_port_mixer,
14725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014726 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14727 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014728 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14729 msm_routing_get_port_mixer,
14730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014731 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14732 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014733 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14734 msm_routing_get_port_mixer,
14735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014736 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14737 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014738 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14739 msm_routing_get_port_mixer,
14740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014741 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14742 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014743 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14744 msm_routing_get_port_mixer,
14745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014746 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14747 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014748 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14749 msm_routing_get_port_mixer,
14750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014751 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14752 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014753 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14754 msm_routing_get_port_mixer,
14755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014756 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14757 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014758 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14759 msm_routing_get_port_mixer,
14760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014761 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014763 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14764 msm_routing_get_port_mixer,
14765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014766 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14767 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014768 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14769 msm_routing_get_port_mixer,
14770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014771 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14772 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014773 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14774 msm_routing_get_port_mixer,
14775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014776 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14777 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014778 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14779 msm_routing_get_port_mixer,
14780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014781 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14782 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014783 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14784 msm_routing_get_port_mixer,
14785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014786 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14787 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014788 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14789 msm_routing_get_port_mixer,
14790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014791 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14792 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014793 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14794 msm_routing_get_port_mixer,
14795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014796 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14797 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014798 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14799 msm_routing_get_port_mixer,
14800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014801 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14802 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014803 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14804 msm_routing_get_port_mixer,
14805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014806 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14807 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014808 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14809 msm_routing_get_port_mixer,
14810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014811 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14812 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014813 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14814 msm_routing_get_port_mixer,
14815 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014816};
14817
14818static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014819 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14820 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014821 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14822 msm_routing_get_port_mixer,
14823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014824 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14825 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014826 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14827 msm_routing_get_port_mixer,
14828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014829 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014831 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14832 msm_routing_get_port_mixer,
14833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014834 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14835 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014836 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14837 msm_routing_get_port_mixer,
14838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014839 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14840 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014841 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14842 msm_routing_get_port_mixer,
14843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014844 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14845 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014846 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14847 msm_routing_get_port_mixer,
14848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014849 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014851 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14852 msm_routing_get_port_mixer,
14853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014854 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14855 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014856 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14857 msm_routing_get_port_mixer,
14858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014859 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14860 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014861 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14862 msm_routing_get_port_mixer,
14863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014864 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14865 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014866 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14867 msm_routing_get_port_mixer,
14868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014869 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14870 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014871 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14872 msm_routing_get_port_mixer,
14873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014874 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14875 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014876 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14877 msm_routing_get_port_mixer,
14878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014879 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14880 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014881 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14882 msm_routing_get_port_mixer,
14883 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014884 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14885 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014886 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14887 msm_routing_get_port_mixer,
14888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014889 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14890 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014891 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14892 msm_routing_get_port_mixer,
14893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014894 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14895 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014896 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14897 msm_routing_get_port_mixer,
14898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014899 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14900 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014901 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14902 msm_routing_get_port_mixer,
14903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014904 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14905 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014906 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14907 msm_routing_get_port_mixer,
14908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014909 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14910 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014911 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14912 msm_routing_get_port_mixer,
14913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014914 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14915 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014916 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14917 msm_routing_get_port_mixer,
14918 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014919};
14920
14921static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014922 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14923 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014924 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14925 msm_routing_get_port_mixer,
14926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014927 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14928 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014929 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14930 msm_routing_get_port_mixer,
14931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014932 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14933 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014934 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14935 msm_routing_get_port_mixer,
14936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014937 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14938 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014939 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14940 msm_routing_get_port_mixer,
14941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014942 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14943 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014944 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14945 msm_routing_get_port_mixer,
14946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014947 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14948 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014949 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14950 msm_routing_get_port_mixer,
14951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014952 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14953 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014954 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14955 msm_routing_get_port_mixer,
14956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014957 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14958 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014959 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14960 msm_routing_get_port_mixer,
14961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014962 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14963 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014964 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14965 msm_routing_get_port_mixer,
14966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014967 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14968 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014969 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14970 msm_routing_get_port_mixer,
14971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014972 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14973 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014974 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14975 msm_routing_get_port_mixer,
14976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014977 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14978 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014979 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14980 msm_routing_get_port_mixer,
14981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014982 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14983 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014984 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14985 msm_routing_get_port_mixer,
14986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014987 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14988 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014989 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14990 msm_routing_get_port_mixer,
14991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014992 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14993 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014994 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14995 msm_routing_get_port_mixer,
14996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014997 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14998 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014999 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15000 msm_routing_get_port_mixer,
15001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015002 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15003 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015004 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15005 msm_routing_get_port_mixer,
15006 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015007 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15008 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015009 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15010 msm_routing_get_port_mixer,
15011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015012 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15013 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015014 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15015 msm_routing_get_port_mixer,
15016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015017 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15018 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015019 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15020 msm_routing_get_port_mixer,
15021 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015022};
15023
15024static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015025 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15026 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015027 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15028 msm_routing_get_port_mixer,
15029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015030 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15031 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015032 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15033 msm_routing_get_port_mixer,
15034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015035 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015037 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15038 msm_routing_get_port_mixer,
15039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015040 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15041 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015042 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15043 msm_routing_get_port_mixer,
15044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015045 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15046 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015047 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15048 msm_routing_get_port_mixer,
15049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015050 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15051 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015052 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15053 msm_routing_get_port_mixer,
15054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015055 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15056 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015057 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15058 msm_routing_get_port_mixer,
15059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015060 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15061 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015062 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15063 msm_routing_get_port_mixer,
15064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015065 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
15066 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015067 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
15068 msm_routing_get_port_mixer,
15069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015070 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
15071 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015072 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
15073 msm_routing_get_port_mixer,
15074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015075 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015077 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
15078 msm_routing_get_port_mixer,
15079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015080 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
15081 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015082 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
15083 msm_routing_get_port_mixer,
15084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015085 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15086 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015087 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15088 msm_routing_get_port_mixer,
15089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015090 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15091 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015092 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15093 msm_routing_get_port_mixer,
15094 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015095 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15096 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015097 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15098 msm_routing_get_port_mixer,
15099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015100 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15101 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015102 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15103 msm_routing_get_port_mixer,
15104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015105 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15106 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015107 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15108 msm_routing_get_port_mixer,
15109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015110 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15111 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015112 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15113 msm_routing_get_port_mixer,
15114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015115 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15116 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015117 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15118 msm_routing_get_port_mixer,
15119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015120 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15121 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015122 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15123 msm_routing_get_port_mixer,
15124 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015125};
15126
15127static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015128 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15129 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015130 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15131 msm_routing_get_port_mixer,
15132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015133 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15134 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015135 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15136 msm_routing_get_port_mixer,
15137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015138 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15139 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015140 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15141 msm_routing_get_port_mixer,
15142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015143 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15144 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015145 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15146 msm_routing_get_port_mixer,
15147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015148 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15149 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015150 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15151 msm_routing_get_port_mixer,
15152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015153 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15154 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015155 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15156 msm_routing_get_port_mixer,
15157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015158 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15159 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015160 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15161 msm_routing_get_port_mixer,
15162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015163 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15164 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015165 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15166 msm_routing_get_port_mixer,
15167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015168 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15169 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015170 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15171 msm_routing_get_port_mixer,
15172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015173 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15174 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015175 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15176 msm_routing_get_port_mixer,
15177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015178 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15179 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015180 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15181 msm_routing_get_port_mixer,
15182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015183 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15184 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015185 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15186 msm_routing_get_port_mixer,
15187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015188 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15189 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015190 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15191 msm_routing_get_port_mixer,
15192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015193 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15194 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015195 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15196 msm_routing_get_port_mixer,
15197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015198 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15199 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015200 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15201 msm_routing_get_port_mixer,
15202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015203 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15204 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015205 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15206 msm_routing_get_port_mixer,
15207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015208 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15209 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015210 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15211 msm_routing_get_port_mixer,
15212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015213 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15214 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015215 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15216 msm_routing_get_port_mixer,
15217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015218 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15219 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015220 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15221 msm_routing_get_port_mixer,
15222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015223 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15224 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015225 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15226 msm_routing_get_port_mixer,
15227 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015228};
15229
15230static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015231 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15232 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015233 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15234 msm_routing_get_port_mixer,
15235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015236 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15237 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015238 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15239 msm_routing_get_port_mixer,
15240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015241 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15242 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015243 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15244 msm_routing_get_port_mixer,
15245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015246 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15247 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015248 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15249 msm_routing_get_port_mixer,
15250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015251 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15252 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015253 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15254 msm_routing_get_port_mixer,
15255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015256 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15257 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015258 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15259 msm_routing_get_port_mixer,
15260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015261 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15262 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015263 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15264 msm_routing_get_port_mixer,
15265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015266 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15267 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015268 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15269 msm_routing_get_port_mixer,
15270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015271 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15272 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015273 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15274 msm_routing_get_port_mixer,
15275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015276 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15277 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015278 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15279 msm_routing_get_port_mixer,
15280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015281 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15282 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015283 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15284 msm_routing_get_port_mixer,
15285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015286 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15287 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015288 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15289 msm_routing_get_port_mixer,
15290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015291 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15292 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015293 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15294 msm_routing_get_port_mixer,
15295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015296 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15297 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015298 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15299 msm_routing_get_port_mixer,
15300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015301 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15302 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015303 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15304 msm_routing_get_port_mixer,
15305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015306 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15307 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015308 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15309 msm_routing_get_port_mixer,
15310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015311 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15312 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015313 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15314 msm_routing_get_port_mixer,
15315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015316 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15317 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015318 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15319 msm_routing_get_port_mixer,
15320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015321 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15322 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015323 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15324 msm_routing_get_port_mixer,
15325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015326 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15327 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015328 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15329 msm_routing_get_port_mixer,
15330 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015331};
15332
15333static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015334 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15335 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015336 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15337 msm_routing_get_port_mixer,
15338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015339 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15340 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015341 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15342 msm_routing_get_port_mixer,
15343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015344 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15345 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015346 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15347 msm_routing_get_port_mixer,
15348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015349 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15350 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015351 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15352 msm_routing_get_port_mixer,
15353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015354 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15355 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015356 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15357 msm_routing_get_port_mixer,
15358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015359 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15360 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015361 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15362 msm_routing_get_port_mixer,
15363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015364 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15365 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015366 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15367 msm_routing_get_port_mixer,
15368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015369 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15370 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015371 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15372 msm_routing_get_port_mixer,
15373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015374 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15375 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015376 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15377 msm_routing_get_port_mixer,
15378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015379 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15380 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015381 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15382 msm_routing_get_port_mixer,
15383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015384 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15385 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015386 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15387 msm_routing_get_port_mixer,
15388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015389 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15390 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015391 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15392 msm_routing_get_port_mixer,
15393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015394 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15395 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015396 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15397 msm_routing_get_port_mixer,
15398 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015399 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15400 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015401 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15402 msm_routing_get_port_mixer,
15403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015404 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15405 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015406 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15407 msm_routing_get_port_mixer,
15408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015409 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15410 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015411 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15412 msm_routing_get_port_mixer,
15413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015414 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15415 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015416 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15417 msm_routing_get_port_mixer,
15418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015419 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15420 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015421 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15422 msm_routing_get_port_mixer,
15423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015424 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15425 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015426 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15427 msm_routing_get_port_mixer,
15428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015429 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15430 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015431 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15432 msm_routing_get_port_mixer,
15433 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015434};
15435
15436static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015437 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15438 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015439 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15440 msm_routing_get_port_mixer,
15441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015442 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15443 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015444 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15445 msm_routing_get_port_mixer,
15446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015447 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15448 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015449 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15450 msm_routing_get_port_mixer,
15451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015452 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15453 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015454 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15455 msm_routing_get_port_mixer,
15456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015457 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15458 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015459 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15460 msm_routing_get_port_mixer,
15461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015462 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15463 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015464 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15465 msm_routing_get_port_mixer,
15466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015467 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15468 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015469 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15470 msm_routing_get_port_mixer,
15471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015472 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15473 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015474 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15475 msm_routing_get_port_mixer,
15476 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015477 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15478 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015479 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15480 msm_routing_get_port_mixer,
15481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015482 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15483 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015484 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15485 msm_routing_get_port_mixer,
15486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015487 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15488 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015489 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15490 msm_routing_get_port_mixer,
15491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015492 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15493 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015494 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15495 msm_routing_get_port_mixer,
15496 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015497 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15498 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015499 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15500 msm_routing_get_port_mixer,
15501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015502 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15503 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015504 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15505 msm_routing_get_port_mixer,
15506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015507 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15508 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015509 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15510 msm_routing_get_port_mixer,
15511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015512 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15513 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015514 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15515 msm_routing_get_port_mixer,
15516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015517 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15518 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015519 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15520 msm_routing_get_port_mixer,
15521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015522 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15523 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015524 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15525 msm_routing_get_port_mixer,
15526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015527 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15528 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015529 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15530 msm_routing_get_port_mixer,
15531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015532 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15533 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015534 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15535 msm_routing_get_port_mixer,
15536 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015537};
15538
Derek Chenfdcc0982018-10-02 15:14:03 -070015539static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15540 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15541 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15542 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15543 msm_routing_get_port_mixer,
15544 msm_routing_put_port_mixer),
15545};
15546
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015547static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015548 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15549 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015550 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15551 msm_routing_get_port_mixer,
15552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015553 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15554 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015555 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15556 msm_routing_get_port_mixer,
15557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015558 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15559 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015560 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15561 msm_routing_get_port_mixer,
15562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015563 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15564 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015565 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15566 msm_routing_get_port_mixer,
15567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015568 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15569 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015570 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15571 msm_routing_get_port_mixer,
15572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015573 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15574 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015575 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15576 msm_routing_get_port_mixer,
15577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015578 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15579 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015580 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15581 msm_routing_get_port_mixer,
15582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015583 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15584 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015585 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15586 msm_routing_get_port_mixer,
15587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015588 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15589 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015590 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15591 msm_routing_get_port_mixer,
15592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015593 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15594 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015595 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15596 msm_routing_get_port_mixer,
15597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015598 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15599 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015600 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15601 msm_routing_get_port_mixer,
15602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015603 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15604 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015605 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15606 msm_routing_get_port_mixer,
15607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015608 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15609 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015610 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15611 msm_routing_get_port_mixer,
15612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015613 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15614 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015615 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15616 msm_routing_get_port_mixer,
15617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015618 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15619 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015620 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15621 msm_routing_get_port_mixer,
15622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015623 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15624 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015625 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15626 msm_routing_get_port_mixer,
15627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015628 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15629 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015630 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15631 msm_routing_get_port_mixer,
15632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015633 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15634 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015635 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15636 msm_routing_get_port_mixer,
15637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015638 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15639 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015640 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15641 msm_routing_get_port_mixer,
15642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015643 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15644 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015645 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15646 msm_routing_get_port_mixer,
15647 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015648};
15649
15650static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015651 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15652 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015653 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15654 msm_routing_get_port_mixer,
15655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015656 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15657 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015658 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15659 msm_routing_get_port_mixer,
15660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015661 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15662 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015663 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15664 msm_routing_get_port_mixer,
15665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015666 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15667 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015668 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15669 msm_routing_get_port_mixer,
15670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015671 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15672 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015673 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15674 msm_routing_get_port_mixer,
15675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015676 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15677 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015678 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15679 msm_routing_get_port_mixer,
15680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015681 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15682 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015683 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15684 msm_routing_get_port_mixer,
15685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015686 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15687 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015688 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15689 msm_routing_get_port_mixer,
15690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015691 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15692 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015693 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15694 msm_routing_get_port_mixer,
15695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015696 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15697 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015698 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15699 msm_routing_get_port_mixer,
15700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015701 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15702 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015703 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15704 msm_routing_get_port_mixer,
15705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015706 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15707 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015708 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15709 msm_routing_get_port_mixer,
15710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015711 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15712 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015713 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15714 msm_routing_get_port_mixer,
15715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015716 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15717 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015718 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15719 msm_routing_get_port_mixer,
15720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015721 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15722 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015723 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15724 msm_routing_get_port_mixer,
15725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015726 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15727 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015728 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15729 msm_routing_get_port_mixer,
15730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015731 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15732 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015733 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15734 msm_routing_get_port_mixer,
15735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015736 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15737 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015738 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15739 msm_routing_get_port_mixer,
15740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015741 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15742 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015743 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15744 msm_routing_get_port_mixer,
15745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015746 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15747 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015748 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15749 msm_routing_get_port_mixer,
15750 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015751};
15752
15753static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015754 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15755 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015756 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15757 msm_routing_get_port_mixer,
15758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015759 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15760 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015761 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15762 msm_routing_get_port_mixer,
15763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015764 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15765 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015766 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15767 msm_routing_get_port_mixer,
15768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015769 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15770 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015771 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15772 msm_routing_get_port_mixer,
15773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015774 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15775 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015776 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15777 msm_routing_get_port_mixer,
15778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015779 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15780 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015781 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15782 msm_routing_get_port_mixer,
15783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015784 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15785 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015786 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15787 msm_routing_get_port_mixer,
15788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015789 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15790 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015791 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15792 msm_routing_get_port_mixer,
15793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015794 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15795 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015796 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15797 msm_routing_get_port_mixer,
15798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015799 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15800 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015801 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15802 msm_routing_get_port_mixer,
15803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015804 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15805 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015806 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15807 msm_routing_get_port_mixer,
15808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015809 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15810 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015811 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15812 msm_routing_get_port_mixer,
15813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015814 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15815 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015816 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15817 msm_routing_get_port_mixer,
15818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015819 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15820 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015821 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15822 msm_routing_get_port_mixer,
15823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015824 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15825 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015826 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15827 msm_routing_get_port_mixer,
15828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015829 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15830 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015831 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15832 msm_routing_get_port_mixer,
15833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015834 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15835 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015836 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15837 msm_routing_get_port_mixer,
15838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015839 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15840 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015841 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15842 msm_routing_get_port_mixer,
15843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015844 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15845 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015846 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15847 msm_routing_get_port_mixer,
15848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015849 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15850 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015851 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15852 msm_routing_get_port_mixer,
15853 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015854};
15855
15856static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015857 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15858 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015859 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15860 msm_routing_get_port_mixer,
15861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015862 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15863 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015864 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15865 msm_routing_get_port_mixer,
15866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015867 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015869 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15870 msm_routing_get_port_mixer,
15871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015872 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15873 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015874 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15875 msm_routing_get_port_mixer,
15876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015877 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15878 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015879 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15880 msm_routing_get_port_mixer,
15881 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015882 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15883 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015884 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15885 msm_routing_get_port_mixer,
15886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015887 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15888 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015889 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15890 msm_routing_get_port_mixer,
15891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015892 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15893 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015894 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15895 msm_routing_get_port_mixer,
15896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015897 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15898 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015899 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15900 msm_routing_get_port_mixer,
15901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015902 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15903 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015904 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15905 msm_routing_get_port_mixer,
15906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015907 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15908 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015909 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15910 msm_routing_get_port_mixer,
15911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015912 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15913 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015914 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15915 msm_routing_get_port_mixer,
15916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015917 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15918 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015919 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15920 msm_routing_get_port_mixer,
15921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015922 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15923 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015924 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15925 msm_routing_get_port_mixer,
15926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015927 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15928 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015929 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15930 msm_routing_get_port_mixer,
15931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015932 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15933 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015934 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15935 msm_routing_get_port_mixer,
15936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015937 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15938 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015939 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15940 msm_routing_get_port_mixer,
15941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015942 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15943 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015944 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15945 msm_routing_get_port_mixer,
15946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015947 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15948 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015949 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15950 msm_routing_get_port_mixer,
15951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015952 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15953 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015954 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15955 msm_routing_get_port_mixer,
15956 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015957};
15958
15959static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015960 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15961 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015962 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15963 msm_routing_get_port_mixer,
15964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015965 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15966 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015967 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15968 msm_routing_get_port_mixer,
15969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015970 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15971 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015972 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15973 msm_routing_get_port_mixer,
15974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015975 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15976 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015977 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15978 msm_routing_get_port_mixer,
15979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015980 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015982 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15983 msm_routing_get_port_mixer,
15984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015985 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15986 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015987 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15988 msm_routing_get_port_mixer,
15989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015990 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15991 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015992 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15993 msm_routing_get_port_mixer,
15994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015995 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15996 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015997 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15998 msm_routing_get_port_mixer,
15999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016000 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16001 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016002 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16003 msm_routing_get_port_mixer,
16004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016005 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16006 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016007 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16008 msm_routing_get_port_mixer,
16009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016010 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16011 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016012 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16013 msm_routing_get_port_mixer,
16014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016015 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16016 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016017 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16018 msm_routing_get_port_mixer,
16019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016020 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16021 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016022 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16023 msm_routing_get_port_mixer,
16024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016025 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16026 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016027 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16028 msm_routing_get_port_mixer,
16029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016030 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16031 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016032 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16033 msm_routing_get_port_mixer,
16034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016035 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16036 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016037 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16038 msm_routing_get_port_mixer,
16039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016040 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16041 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016042 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16043 msm_routing_get_port_mixer,
16044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016045 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16046 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016047 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16048 msm_routing_get_port_mixer,
16049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016050 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16051 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016052 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16053 msm_routing_get_port_mixer,
16054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016055 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16056 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016057 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16058 msm_routing_get_port_mixer,
16059 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016060};
16061
16062static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016063 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16064 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016065 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16066 msm_routing_get_port_mixer,
16067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016068 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16069 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016070 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16071 msm_routing_get_port_mixer,
16072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016073 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16074 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016075 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16076 msm_routing_get_port_mixer,
16077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016078 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16079 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016080 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16081 msm_routing_get_port_mixer,
16082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016083 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16084 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016085 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16086 msm_routing_get_port_mixer,
16087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016088 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16089 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016090 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16091 msm_routing_get_port_mixer,
16092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016093 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16094 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016095 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16096 msm_routing_get_port_mixer,
16097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016098 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16099 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016100 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16101 msm_routing_get_port_mixer,
16102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016103 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16104 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016105 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16106 msm_routing_get_port_mixer,
16107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016108 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16109 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016110 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16111 msm_routing_get_port_mixer,
16112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016113 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16114 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016115 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16116 msm_routing_get_port_mixer,
16117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016118 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16119 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016120 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16121 msm_routing_get_port_mixer,
16122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016123 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16124 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016125 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16126 msm_routing_get_port_mixer,
16127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016128 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16129 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016130 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16131 msm_routing_get_port_mixer,
16132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016133 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16134 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016135 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16136 msm_routing_get_port_mixer,
16137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016138 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16139 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016140 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16141 msm_routing_get_port_mixer,
16142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016143 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16144 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016145 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16146 msm_routing_get_port_mixer,
16147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016148 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16149 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016150 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16151 msm_routing_get_port_mixer,
16152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016153 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16154 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016155 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16156 msm_routing_get_port_mixer,
16157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016158 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16159 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016160 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16161 msm_routing_get_port_mixer,
16162 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016163};
16164
16165static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016166 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16167 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016168 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16169 msm_routing_get_port_mixer,
16170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016171 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16172 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016173 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16174 msm_routing_get_port_mixer,
16175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016176 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16177 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016178 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16179 msm_routing_get_port_mixer,
16180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016181 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016183 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16184 msm_routing_get_port_mixer,
16185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016186 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16187 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016188 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16189 msm_routing_get_port_mixer,
16190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016191 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016193 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16194 msm_routing_get_port_mixer,
16195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016196 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016198 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16199 msm_routing_get_port_mixer,
16200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016201 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16202 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016203 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16204 msm_routing_get_port_mixer,
16205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016206 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16207 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016208 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16209 msm_routing_get_port_mixer,
16210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016211 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16212 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016213 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16214 msm_routing_get_port_mixer,
16215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016216 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16217 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016218 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16219 msm_routing_get_port_mixer,
16220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016221 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16222 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016223 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16224 msm_routing_get_port_mixer,
16225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016226 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16227 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016228 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16229 msm_routing_get_port_mixer,
16230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016231 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16232 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016233 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16234 msm_routing_get_port_mixer,
16235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016236 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16237 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016238 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16239 msm_routing_get_port_mixer,
16240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016241 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16242 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016243 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16244 msm_routing_get_port_mixer,
16245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016246 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16247 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016248 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16249 msm_routing_get_port_mixer,
16250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016251 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16252 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016253 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16254 msm_routing_get_port_mixer,
16255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016256 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16257 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016258 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16259 msm_routing_get_port_mixer,
16260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016261 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16262 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016263 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16264 msm_routing_get_port_mixer,
16265 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016266};
16267
16268static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016269 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16270 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016271 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16272 msm_routing_get_port_mixer,
16273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016274 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16275 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016276 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16277 msm_routing_get_port_mixer,
16278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016279 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16280 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016281 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16282 msm_routing_get_port_mixer,
16283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016284 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16285 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016286 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16287 msm_routing_get_port_mixer,
16288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016289 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16290 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016291 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16292 msm_routing_get_port_mixer,
16293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016294 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16295 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016296 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16297 msm_routing_get_port_mixer,
16298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016299 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16300 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016301 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16302 msm_routing_get_port_mixer,
16303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016304 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16305 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016306 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16307 msm_routing_get_port_mixer,
16308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016309 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16310 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016311 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16312 msm_routing_get_port_mixer,
16313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016314 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16315 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016316 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16317 msm_routing_get_port_mixer,
16318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016319 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16320 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016321 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16322 msm_routing_get_port_mixer,
16323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016324 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16325 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016326 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16327 msm_routing_get_port_mixer,
16328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016329 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16330 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016331 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16332 msm_routing_get_port_mixer,
16333 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016334 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16335 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016336 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16337 msm_routing_get_port_mixer,
16338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016339 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16340 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016341 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16342 msm_routing_get_port_mixer,
16343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016344 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16345 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016346 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16347 msm_routing_get_port_mixer,
16348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016349 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16350 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016351 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16352 msm_routing_get_port_mixer,
16353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016354 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16355 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016356 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16357 msm_routing_get_port_mixer,
16358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016359 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16360 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016361 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16362 msm_routing_get_port_mixer,
16363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016364 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16365 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016366 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16367 msm_routing_get_port_mixer,
16368 msm_routing_put_port_mixer),
16369};
16370
16371static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016372 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16373 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016374 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16375 msm_routing_get_port_mixer,
16376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016377 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16378 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016379 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16380 msm_routing_get_port_mixer,
16381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016382 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16383 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016384 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16385 msm_routing_get_port_mixer,
16386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016387 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16388 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016389 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16390 msm_routing_get_port_mixer,
16391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016392 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16393 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016394 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16395 msm_routing_get_port_mixer,
16396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016397 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16398 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016399 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16400 msm_routing_get_port_mixer,
16401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016402 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16403 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016404 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16405 msm_routing_get_port_mixer,
16406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016407 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16408 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016409 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16410 msm_routing_get_port_mixer,
16411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016412 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16413 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016414 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16415 msm_routing_get_port_mixer,
16416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016417 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16418 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016419 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16420 msm_routing_get_port_mixer,
16421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016422 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16423 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016424 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16425 msm_routing_get_port_mixer,
16426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016427 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16428 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016429 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16430 msm_routing_get_port_mixer,
16431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016432 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16433 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016434 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16435 msm_routing_get_port_mixer,
16436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016437 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16438 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016439 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16440 msm_routing_get_port_mixer,
16441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016442 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16443 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016444 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16445 msm_routing_get_port_mixer,
16446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016447 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16448 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016449 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16450 msm_routing_get_port_mixer,
16451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016452 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16453 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016454 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16455 msm_routing_get_port_mixer,
16456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016457 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16458 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016459 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16460 msm_routing_get_port_mixer,
16461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016462 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16463 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016464 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16465 msm_routing_get_port_mixer,
16466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016467 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16468 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016469 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16470 msm_routing_get_port_mixer,
16471 msm_routing_put_port_mixer),
16472};
16473
16474static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016475 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16476 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016477 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16478 msm_routing_get_port_mixer,
16479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016480 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16481 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016482 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16483 msm_routing_get_port_mixer,
16484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016485 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16486 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016487 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16488 msm_routing_get_port_mixer,
16489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016490 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16491 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016492 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16493 msm_routing_get_port_mixer,
16494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016495 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16496 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016497 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16498 msm_routing_get_port_mixer,
16499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016500 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16501 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016502 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16503 msm_routing_get_port_mixer,
16504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016505 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16506 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016507 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16508 msm_routing_get_port_mixer,
16509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016510 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16511 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016512 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16513 msm_routing_get_port_mixer,
16514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016515 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16516 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016517 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16518 msm_routing_get_port_mixer,
16519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016520 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16521 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016522 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16523 msm_routing_get_port_mixer,
16524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016525 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16526 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016527 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16528 msm_routing_get_port_mixer,
16529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016530 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16531 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016532 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16533 msm_routing_get_port_mixer,
16534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016535 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16536 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016537 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16538 msm_routing_get_port_mixer,
16539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016540 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16541 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016542 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16543 msm_routing_get_port_mixer,
16544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016545 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16546 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016547 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16548 msm_routing_get_port_mixer,
16549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016550 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16551 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016552 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16553 msm_routing_get_port_mixer,
16554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016555 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16556 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016557 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16558 msm_routing_get_port_mixer,
16559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016560 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16561 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016562 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16563 msm_routing_get_port_mixer,
16564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016565 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16566 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016567 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16568 msm_routing_get_port_mixer,
16569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016570 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16571 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016572 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16573 msm_routing_get_port_mixer,
16574 msm_routing_put_port_mixer),
16575};
16576
16577static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016578 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16579 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016580 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16581 msm_routing_get_port_mixer,
16582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016583 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16584 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016585 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16586 msm_routing_get_port_mixer,
16587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016588 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16589 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016590 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16591 msm_routing_get_port_mixer,
16592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016593 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16594 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016595 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16596 msm_routing_get_port_mixer,
16597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016598 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16599 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016600 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16601 msm_routing_get_port_mixer,
16602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016603 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16604 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016605 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16606 msm_routing_get_port_mixer,
16607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016608 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16609 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016610 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16611 msm_routing_get_port_mixer,
16612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016613 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16614 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016615 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16616 msm_routing_get_port_mixer,
16617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016618 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16619 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016620 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16621 msm_routing_get_port_mixer,
16622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016623 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16624 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016625 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16626 msm_routing_get_port_mixer,
16627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016628 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16629 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016630 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16631 msm_routing_get_port_mixer,
16632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016633 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16634 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016635 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16636 msm_routing_get_port_mixer,
16637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016638 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16639 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016640 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16641 msm_routing_get_port_mixer,
16642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016643 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16644 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016645 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16646 msm_routing_get_port_mixer,
16647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016648 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16649 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016650 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16651 msm_routing_get_port_mixer,
16652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016653 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16654 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016655 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16656 msm_routing_get_port_mixer,
16657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016658 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16659 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016660 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16661 msm_routing_get_port_mixer,
16662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016663 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16664 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016665 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16666 msm_routing_get_port_mixer,
16667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016668 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16669 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016670 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16671 msm_routing_get_port_mixer,
16672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016673 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16674 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016675 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16676 msm_routing_get_port_mixer,
16677 msm_routing_put_port_mixer),
16678};
16679
16680static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016681 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16682 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016683 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16684 msm_routing_get_port_mixer,
16685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016686 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16687 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016688 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16689 msm_routing_get_port_mixer,
16690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016691 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16692 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016693 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16694 msm_routing_get_port_mixer,
16695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016696 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16697 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016698 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16699 msm_routing_get_port_mixer,
16700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016701 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16702 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016703 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16704 msm_routing_get_port_mixer,
16705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016706 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16707 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016708 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16709 msm_routing_get_port_mixer,
16710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016711 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16712 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016713 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16714 msm_routing_get_port_mixer,
16715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016716 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16717 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016718 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16719 msm_routing_get_port_mixer,
16720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016721 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16722 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016723 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16724 msm_routing_get_port_mixer,
16725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016726 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16727 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016728 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16729 msm_routing_get_port_mixer,
16730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016731 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16732 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016733 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16734 msm_routing_get_port_mixer,
16735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016736 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16737 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016738 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16739 msm_routing_get_port_mixer,
16740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016741 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16742 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016743 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16744 msm_routing_get_port_mixer,
16745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016746 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16747 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016748 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16749 msm_routing_get_port_mixer,
16750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016751 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16752 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016753 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16754 msm_routing_get_port_mixer,
16755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016756 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16757 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016758 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16759 msm_routing_get_port_mixer,
16760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016761 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16762 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016763 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16764 msm_routing_get_port_mixer,
16765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016766 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16767 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016768 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16769 msm_routing_get_port_mixer,
16770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016771 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16772 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016773 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16774 msm_routing_get_port_mixer,
16775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016776 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16777 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016778 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16779 msm_routing_get_port_mixer,
16780 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016781};
16782
16783static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016784 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16785 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016786 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016788 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16789 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016790 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016792 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16793 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016794 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016796 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16797 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016798 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016800 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16801 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016802 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016804 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16805 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016806 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016808 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16809 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016810 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16811 msm_routing_put_port_mixer),
16812};
16813
16814static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016815 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16816 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016817 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016819 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16820 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016821 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016823 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16824 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016825 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016827 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16828 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016829 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016831 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16832 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016833 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16834 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016835 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16836 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016837 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016839 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16840 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016841 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016843 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16844 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016845 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016847 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16848 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016849 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16850 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016851};
16852
16853static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016854 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16855 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016856 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16857 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016858 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16859 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016860 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16861 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016862 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16863 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016864 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16865 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016866 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16867 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016868 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16869 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016870 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16871 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016872 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16873 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016874 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16875 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016876 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16877 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016878 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16879 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016880 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16881 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016882 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16883 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016884 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16885 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016886 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16887 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16888 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16889 msm_routing_put_listen_mixer),
16890 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16891 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16892 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16893 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016894 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16895 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16896 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16897 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016898 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16899 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16900 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16901 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016902 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16903 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16904 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16905 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016906};
16907
16908static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016909 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16910 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016911 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16912 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016913 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16914 SND_SOC_NOPM,
16915 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016916 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16917 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016918 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16919 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016920 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16921 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016922 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16923 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016924 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16925 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016926 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16927 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016928 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16929 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016930 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16931 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016932 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16933 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016934 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16935 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016936 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16937 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016938 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16939 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016940 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16941 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016942 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16943 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16944 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16945 msm_routing_put_listen_mixer),
16946 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16947 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16948 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16949 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016950 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16951 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16952 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16953 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016954 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16955 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16956 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16957 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016958 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16959 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16960 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16961 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016962};
16963
16964static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016965 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16966 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016967 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16968 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016969 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16970 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016971 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16972 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016973 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16974 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016975 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16976 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016977 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16978 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016979 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16980 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016981 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16982 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016983 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16984 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016985 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16986 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016987 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16988 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016989 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16990 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016991 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16992 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016993 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16994 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016995 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16996 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016997 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16998 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16999 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17000 msm_routing_put_listen_mixer),
17001 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17002 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17003 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17004 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017005 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17006 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17007 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17008 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017009 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17010 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17011 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17012 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017013 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17014 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17015 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17016 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017017};
17018
17019static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017020 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17021 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017022 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17023 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017024 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17025 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017026 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17027 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017028 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17029 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017030 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17031 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017032 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17033 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017034 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17035 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017036 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17037 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017038 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17039 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017040 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17041 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017042 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17043 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017044 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17045 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017046 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17047 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017048 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17049 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017050 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17051 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017052 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17053 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17054 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17055 msm_routing_put_listen_mixer),
17056 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17057 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17058 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17059 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017060 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17061 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17062 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17063 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017064 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17065 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17066 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17067 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017068 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17069 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17070 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17071 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017072};
17073
17074static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017075 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17076 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017077 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17078 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017079 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17080 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017081 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17082 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017083 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17084 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017085 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17086 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017087 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17088 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017089 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17090 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017091 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17092 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017093 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17094 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017095 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17096 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017097 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17098 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017099 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17100 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017101 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17102 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017103 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17104 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017105 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17106 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017107 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17108 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17109 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17110 msm_routing_put_listen_mixer),
17111 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17112 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17113 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17114 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017115 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17116 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17117 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17118 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017119 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17120 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17121 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17122 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017123 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17124 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17125 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17126 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017127};
17128
17129static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017130 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17131 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017132 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17133 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017134 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17135 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017136 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17137 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017138 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17139 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017140 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17141 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017142 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17143 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017144 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17145 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017146 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17147 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017148 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17149 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017150 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17151 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017152 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17153 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017154 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17155 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017156 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17157 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017158 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17159 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017160 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17161 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017162 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17163 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17164 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17165 msm_routing_put_listen_mixer),
17166 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17167 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17168 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17169 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017170 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17171 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17172 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17173 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017174 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17175 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17176 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17177 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017178 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17179 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17180 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17181 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017182};
17183
17184static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017185 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17186 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017187 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17188 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017189 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17190 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017191 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17192 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017193 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17194 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017195 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17196 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017197 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17198 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017199 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17200 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017201 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17202 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017203 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17204 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017205 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17206 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017207 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17208 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017209 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17210 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017211 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17212 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017213 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17214 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017215 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17216 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017217 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17218 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17219 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17220 msm_routing_put_listen_mixer),
17221 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17222 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17223 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17224 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017225 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17226 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17227 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17228 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017229 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17230 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17231 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17232 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017233 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17234 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17235 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17236 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017237};
17238
17239static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017240 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17241 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017242 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17243 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017244 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17245 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017246 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17247 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017248 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17249 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017250 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17251 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017252 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17253 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017254 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17255 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017256 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17257 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017258 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17259 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017260 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17261 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017262 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17263 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017264 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17265 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017266 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17267 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017268 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17269 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017270 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17271 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017272 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17273 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17274 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17275 msm_routing_put_listen_mixer),
17276 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17277 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17278 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17279 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017280 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17281 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17282 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17283 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017284 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17285 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17286 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17287 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017288 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17289 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17290 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17291 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017292};
17293
17294static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
17295 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17296 0, 1, 0, msm_routing_get_switch_mixer,
17297 msm_routing_put_switch_mixer);
17298
17299static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
17300 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17301 0, 1, 0, msm_routing_get_switch_mixer,
17302 msm_routing_put_switch_mixer);
17303
17304static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
17305 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17306 0, 1, 0, msm_routing_get_switch_mixer,
17307 msm_routing_put_switch_mixer);
17308
17309static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
17310 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17311 0, 1, 0, msm_routing_get_switch_mixer,
17312 msm_routing_put_switch_mixer);
17313
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017314static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
17315 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17316 0, 1, 0, msm_routing_get_switch_mixer,
17317 msm_routing_put_switch_mixer);
17318
17319static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017320 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17321 0, 1, 0, msm_routing_get_switch_mixer,
17322 msm_routing_put_switch_mixer);
17323
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017324static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
17325 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17326 0, 1, 0, msm_routing_get_switch_mixer,
17327 msm_routing_put_switch_mixer);
17328
17329static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
17330 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17331 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
17332 msm_routing_put_fm_pcmrx_switch_mixer);
17333
17334static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
17335 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17336 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
17337 msm_routing_put_int0_mi2s_switch_mixer);
17338
17339static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
17340 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17341 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
17342 msm_routing_put_int4_mi2s_switch_mixer);
17343
17344static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
17345 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17346 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
17347 msm_routing_put_pri_mi2s_switch_mixer);
17348
17349static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
17350 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17351 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
17352 msm_routing_put_sec_mi2s_switch_mixer);
17353
17354static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
17355 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17356 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
17357 msm_routing_put_tert_mi2s_switch_mixer);
17358
17359static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
17360 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17361 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
17362 msm_routing_put_quat_mi2s_switch_mixer);
17363
Rohit Kumara5077932017-09-10 22:05:05 +053017364static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
17365 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17366 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
17367 msm_routing_put_quin_mi2s_switch_mixer);
17368
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017369static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
17370 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17371 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17372 msm_routing_put_hfp_switch_mixer);
17373
17374static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
17375 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17376 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17377 msm_routing_put_hfp_switch_mixer);
17378
17379static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
17380 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17381 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17382 msm_routing_put_hfp_switch_mixer);
17383
17384static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
17385 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17386 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17387 msm_routing_put_hfp_switch_mixer);
17388
17389static const struct snd_kcontrol_new usb_switch_mixer_controls =
17390 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17391 0, 1, 0, msm_routing_get_usb_switch_mixer,
17392 msm_routing_put_usb_switch_mixer);
17393
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080017394static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
17395 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17396 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
17397 msm_routing_a2dp_switch_mixer_put);
17398
Zhou Songcaa541d2019-02-19 18:37:47 +080017399static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
17400 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17401 0, 1, 0, msm_routing_sco_switch_mixer_get,
17402 msm_routing_sco_switch_mixer_put);
17403
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017404static const struct soc_enum lsm_port_enum =
17405 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
17406
17407static const char * const lsm_func_text[] = {
17408 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
17409};
17410static const struct soc_enum lsm_func_enum =
17411 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
17412
17413static const struct snd_kcontrol_new lsm_controls[] = {
17414 /* kcontrol of lsm_function */
17415 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17416 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17417 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17418 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17419 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17420 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17421 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17422 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17423 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17424 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17425 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17426 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17427 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17428 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17429 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17430 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17431 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17432 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017433 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17434 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017435 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17436 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017437 /* kcontrol of lsm_port */
17438 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
17439 msm_routing_lsm_port_get,
17440 msm_routing_lsm_port_put),
17441 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
17442 msm_routing_lsm_port_get,
17443 msm_routing_lsm_port_put),
17444 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
17445 msm_routing_lsm_port_get,
17446 msm_routing_lsm_port_put),
17447 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
17448 msm_routing_lsm_port_get,
17449 msm_routing_lsm_port_put),
17450 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
17451 msm_routing_lsm_port_get,
17452 msm_routing_lsm_port_put),
17453 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
17454 msm_routing_lsm_port_get,
17455 msm_routing_lsm_port_put),
17456 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
17457 msm_routing_lsm_port_get,
17458 msm_routing_lsm_port_put),
17459 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
17460 msm_routing_lsm_port_get,
17461 msm_routing_lsm_port_put),
17462};
17463
17464static const char * const aanc_slim_0_rx_text[] = {
17465 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
17466 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
17467};
17468
17469static const struct soc_enum aanc_slim_0_rx_enum =
17470 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
17471 aanc_slim_0_rx_text);
17472
17473static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
17474 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
17475 msm_routing_slim_0_rx_aanc_mux_get,
17476 msm_routing_slim_0_rx_aanc_mux_put)
17477};
17478
Sudheer Papothic07b37a2018-05-04 05:56:47 +053017479static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
17480 struct snd_ctl_elem_value *ucontrol)
17481{
17482 ucontrol->value.integer.value[0] = aanc_level;
17483
17484 return 0;
17485}
17486
17487static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
17488 struct snd_ctl_elem_value *ucontrol)
17489{
17490 int ret = 0;
17491
17492 mutex_lock(&routing_lock);
17493 aanc_level = ucontrol->value.integer.value[0];
17494 pr_debug("%s: value: %ld\n",
17495 __func__, ucontrol->value.integer.value[0]);
17496 ret = afe_set_aanc_noise_level(aanc_level);
17497 mutex_unlock(&routing_lock);
17498
17499 return ret;
17500}
17501
17502static const struct snd_kcontrol_new aanc_noise_level[] = {
17503 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
17504 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
17505};
17506
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017507static int msm_routing_get_stereo_to_custom_stereo_control(
17508 struct snd_kcontrol *kcontrol,
17509 struct snd_ctl_elem_value *ucontrol)
17510{
17511 ucontrol->value.integer.value[0] = is_custom_stereo_on;
17512 return 0;
17513}
17514
17515static int msm_routing_put_stereo_to_custom_stereo_control(
17516 struct snd_kcontrol *kcontrol,
17517 struct snd_ctl_elem_value *ucontrol)
17518{
17519 int flag = 0, i = 0, rc = 0, idx = 0;
17520 int be_index = 0, port_id, topo_id;
17521 unsigned int session_id = 0;
17522 uint16_t op_FL_ip_FL_weight = 0;
17523 uint16_t op_FL_ip_FR_weight = 0;
17524 uint16_t op_FR_ip_FL_weight = 0;
17525 uint16_t op_FR_ip_FR_weight = 0;
17526
17527 flag = ucontrol->value.integer.value[0];
17528 pr_debug("%s E flag %d\n", __func__, flag);
17529
17530 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
17531 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
17532 __func__, is_custom_stereo_on, flag);
17533 return 0;
17534 }
17535 is_custom_stereo_on = flag ? true : false;
17536 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
17537 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
17538 port_id = msm_bedais[be_index].port_id;
17539 if (!msm_bedais[be_index].active)
17540 continue;
17541 if ((port_id != SLIMBUS_0_RX) &&
17542 (port_id != RT_PROXY_PORT_001_RX) &&
17543 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
17544 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
17545 continue;
17546
17547 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
17548 MSM_FRONTEND_DAI_MM_SIZE) {
17549 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
17550 LEGACY_PCM_MODE)
17551 goto skip_send_custom_stereo;
17552 session_id =
17553 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
17554 if (is_custom_stereo_on) {
17555 op_FL_ip_FL_weight =
17556 Q14_GAIN_ZERO_POINT_FIVE;
17557 op_FL_ip_FR_weight =
17558 Q14_GAIN_ZERO_POINT_FIVE;
17559 op_FR_ip_FL_weight =
17560 Q14_GAIN_ZERO_POINT_FIVE;
17561 op_FR_ip_FR_weight =
17562 Q14_GAIN_ZERO_POINT_FIVE;
17563 } else {
17564 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
17565 op_FL_ip_FR_weight = 0;
17566 op_FR_ip_FL_weight = 0;
17567 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
17568 }
17569 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17570 unsigned long copp =
17571 session_copp_map[i]
17572 [SESSION_TYPE_RX][be_index];
17573 if (!test_bit(idx, &copp))
17574 goto skip_send_custom_stereo;
17575 topo_id = adm_get_topology_for_port_copp_idx(
17576 msm_bedais[be_index].port_id, idx);
17577 if (topo_id < 0)
17578 pr_debug("%s:Err:custom stereo topo %d",
17579 __func__, topo_id);
17580 pr_debug("idx %d\n", idx);
17581 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17582 rc = msm_ds2_dap_set_custom_stereo_onoff
17583 (msm_bedais[be_index].port_id,
17584 idx, is_custom_stereo_on);
17585 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17586 rc = dolby_dap_set_custom_stereo_onoff(
17587 msm_bedais[be_index].port_id,
17588 idx, is_custom_stereo_on);
17589 else
17590 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17591 (msm_bedais[be_index].port_id,
17592 idx, session_id,
17593 op_FL_ip_FL_weight,
17594 op_FL_ip_FR_weight,
17595 op_FR_ip_FL_weight,
17596 op_FR_ip_FR_weight);
17597 if (rc < 0)
17598skip_send_custom_stereo:
17599 pr_err("%s: err setting custom stereo\n",
17600 __func__);
17601 }
17602
17603 }
17604 }
17605 return 0;
17606}
17607
17608static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17609 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17610 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17611 msm_routing_put_stereo_to_custom_stereo_control),
17612};
17613
17614static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17615 struct snd_ctl_elem_value *ucontrol)
17616{
17617 return 0;
17618}
17619
17620static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17621 struct snd_ctl_elem_value *ucontrol)
17622{
17623 int i = 0, j;
17624 int num_app_types = ucontrol->value.integer.value[i++];
17625
17626 pr_debug("%s\n", __func__);
17627
17628 memset(app_type_cfg, 0, MAX_APP_TYPES*
17629 sizeof(struct msm_pcm_routing_app_type_data));
17630 if (num_app_types > MAX_APP_TYPES) {
17631 pr_err("%s: number of app types exceed the max supported\n",
17632 __func__);
17633 return -EINVAL;
17634 }
17635 for (j = 0; j < num_app_types; j++) {
17636 app_type_cfg[j].app_type =
17637 ucontrol->value.integer.value[i++];
17638 app_type_cfg[j].sample_rate =
17639 ucontrol->value.integer.value[i++];
17640 app_type_cfg[j].bit_width =
17641 ucontrol->value.integer.value[i++];
17642 }
17643
17644 return 0;
17645}
17646
17647static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17648 struct snd_ctl_elem_value *ucontrol)
17649{
17650 int j, fe_id, be_id, port_type;
17651 int ret = 0;
17652 unsigned long copp;
17653 struct msm_pcm_routing_bdai_data *bedai;
17654 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17655 SESSION_TYPE_RX;
17656 int app_type = ucontrol->value.integer.value[1];
17657 int gain = (ucontrol->value.integer.value[2] +
17658 ucontrol->value.integer.value[3])/2;
17659
17660 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17661 MSM_AFE_PORT_TYPE_TX;
17662
17663 mutex_lock(&routing_lock);
17664 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17665 if (is_be_dai_extproc(be_id))
17666 continue;
17667
17668 bedai = &msm_bedais[be_id];
17669 if (afe_get_port_type(bedai->port_id) != port_type)
17670 continue;
17671
17672 if (!bedai->active)
17673 continue;
17674
17675 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17676 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17677 continue;
17678
17679 if (app_type !=
17680 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17681 continue;
17682
17683 copp = session_copp_map[fe_id][dir][be_id];
17684 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17685 if (!test_bit(j, &copp))
17686 continue;
17687 ret |= adm_set_volume(bedai->port_id, j, gain);
17688 }
17689 }
17690 }
17691 mutex_unlock(&routing_lock);
17692 return ret ? -EINVAL : 0;
17693}
17694
17695static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17696 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17697 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17698 msm_routing_put_app_type_cfg_control),
17699 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17700 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17701};
17702
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017703static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17704 struct snd_ctl_elem_value *ucontrol)
17705{
17706 int copp_idx, fe_id, be_id, port_type;
17707 int ret = 0;
17708 unsigned long copp;
17709 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017710 u8 *packed_params = NULL;
17711 struct param_hdr_v3 param_hdr;
17712 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17713 sizeof(uint32_t));
17714
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017715 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17716 SESSION_TYPE_RX;
17717 int app_type = ucontrol->value.integer.value[1];
17718 int module_id = ucontrol->value.integer.value[2];
17719 int instance_id = ucontrol->value.integer.value[3];
17720 int param_id = ucontrol->value.integer.value[4];
17721 int param_value = ucontrol->value.integer.value[5];
17722
17723 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17724 MSM_AFE_PORT_TYPE_TX;
17725 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17726 __func__, app_type, module_id,
17727 instance_id, param_id, param_value);
17728
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017729 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17730 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017731 return -ENOMEM;
17732
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017733 memset(&param_hdr, 0, sizeof(param_hdr));
17734 param_hdr.module_id = module_id;
17735 param_hdr.instance_id = instance_id;
17736 param_hdr.param_id = param_id;
17737 param_hdr.param_size = sizeof(uint32_t);
17738
17739 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017740
17741 mutex_lock(&routing_lock);
17742 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17743 if (is_be_dai_extproc(be_id))
17744 continue;
17745
17746 bedai = &msm_bedais[be_id];
17747 if (afe_get_port_type(bedai->port_id) != port_type)
17748 continue;
17749
17750 if (!bedai->active)
17751 continue;
17752
17753 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17754 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17755 continue;
17756
17757 if (app_type !=
17758 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17759 continue;
17760
17761 copp = session_copp_map[fe_id][dir][be_id];
17762 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17763 copp_idx++) {
17764 if (!test_bit(copp_idx, &copp))
17765 continue;
17766
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017767 ret = q6common_pack_pp_params(packed_params,
17768 &param_hdr,
17769 (u8 *) &param_value,
17770 &packed_param_size);
17771 if (ret) {
17772 pr_err("%s: Failed to pack params, error %d\n",
17773 __func__, ret);
17774 goto done;
17775 }
17776
17777 ret = adm_set_pp_params(bedai->port_id,
17778 copp_idx, NULL,
17779 packed_params,
17780 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017781 if (ret) {
17782 pr_err("%s: Setting param failed with err=%d\n",
17783 __func__, ret);
17784 ret = -EINVAL;
17785 goto done;
17786 }
17787 }
17788 }
17789 }
17790done:
17791 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017792 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017793 return ret;
17794}
17795
17796static const struct snd_kcontrol_new module_cfg_controls[] = {
17797 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17798 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17799};
17800
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017801static int msm_routing_get_lsm_app_type_cfg_control(
17802 struct snd_kcontrol *kcontrol,
17803 struct snd_ctl_elem_value *ucontrol)
17804{
Meng Wangadbca4f2018-10-29 14:30:13 +080017805 int shift = ((struct soc_multi_mixer_control *)
17806 kcontrol->private_value)->shift;
17807 int i = 0, j = 0;
17808
17809 ucontrol->value.integer.value[i] = num_app_cfg_types;
17810
17811 for (j = 0; j < num_app_cfg_types; ++j) {
17812 ucontrol->value.integer.value[++i] =
17813 lsm_app_type_cfg[j].app_type;
17814 ucontrol->value.integer.value[++i] =
17815 lsm_app_type_cfg[j].sample_rate;
17816 ucontrol->value.integer.value[++i] =
17817 lsm_app_type_cfg[j].bit_width;
17818 if (shift == 1)
17819 ucontrol->value.integer.value[++i] =
17820 lsm_app_type_cfg[j].num_out_channels;
17821 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017822 return 0;
17823}
17824
17825static int msm_routing_put_lsm_app_type_cfg_control(
17826 struct snd_kcontrol *kcontrol,
17827 struct snd_ctl_elem_value *ucontrol)
17828{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017829 int shift = ((struct soc_multi_mixer_control *)
17830 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017831 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017832
Meng Wangadbca4f2018-10-29 14:30:13 +080017833 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017834 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017835 sizeof(struct msm_pcm_routing_app_type_data));
17836
Meng Wangadbca4f2018-10-29 14:30:13 +080017837 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017838 pr_err("%s: number of app types exceed the max supported\n",
17839 __func__);
17840 return -EINVAL;
17841 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017842
Meng Wangadbca4f2018-10-29 14:30:13 +080017843 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017844 lsm_app_type_cfg[j].app_type =
17845 ucontrol->value.integer.value[i++];
17846 lsm_app_type_cfg[j].sample_rate =
17847 ucontrol->value.integer.value[i++];
17848 lsm_app_type_cfg[j].bit_width =
17849 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017850 /* Shift of 1 indicates this is V2 mixer control */
17851 if (shift == 1)
17852 lsm_app_type_cfg[j].num_out_channels =
17853 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017854 }
17855
17856 return 0;
17857}
17858
17859static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17860 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17861 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17862 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017863 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17864 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17865 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017866};
17867
17868static int msm_routing_get_use_ds1_or_ds2_control(
17869 struct snd_kcontrol *kcontrol,
17870 struct snd_ctl_elem_value *ucontrol)
17871{
17872 ucontrol->value.integer.value[0] = is_ds2_on;
17873 return 0;
17874}
17875
17876static int msm_routing_put_use_ds1_or_ds2_control(
17877 struct snd_kcontrol *kcontrol,
17878 struct snd_ctl_elem_value *ucontrol)
17879{
17880 is_ds2_on = ucontrol->value.integer.value[0];
17881 return 0;
17882}
17883
17884static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17885 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17886 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17887 msm_routing_put_use_ds1_or_ds2_control),
17888};
17889
17890int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17891 struct snd_ctl_elem_value *ucontrol) {
17892 int rc = 0;
17893 int be_idx = 0;
17894 char *param_value;
17895 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017896 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17897 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017898
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017899 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017900 if (!param_value)
17901 return -ENOMEM;
17902
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017903 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017904 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17905 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17906 break;
17907 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017908 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17909 param_hdr.instance_id = INSTANCE_ID_0;
17910 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17911 param_hdr.param_size = param_size;
17912 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17913 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017914 if (rc) {
17915 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17916 kfree(param_value);
17917 return -EINVAL;
17918 }
17919 update_param_value = (int *)param_value;
17920 ucontrol->value.integer.value[0] = update_param_value[0];
17921
17922 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17923 __func__, update_param_value[0]);
17924 }
17925 kfree(param_value);
17926 return 0;
17927}
17928
17929static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17930 struct snd_ctl_elem_value *ucontrol)
17931{
17932 voc_session_id = ucontrol->value.integer.value[0];
17933
17934 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17935
17936 return 0;
17937}
17938
17939static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17940 struct snd_ctl_elem_value *ucontrol)
17941{
17942 ucontrol->value.integer.value[0] = voc_session_id;
17943
17944 return 0;
17945}
17946
17947static struct snd_kcontrol_new msm_voc_session_controls[] = {
17948 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17949 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17950 msm_voc_session_id_put),
17951};
17952
17953static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17954 struct snd_ctl_elem_info *uinfo)
17955{
17956 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17957 uinfo->count = sizeof(struct sound_focus_param);
17958
17959 return 0;
17960}
17961
17962static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17963 struct snd_ctl_elem_value *ucontrol)
17964{
17965 int ret = 0;
17966 struct sound_focus_param soundFocusData;
17967
17968 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17969 sizeof(struct sound_focus_param));
17970 ret = voc_set_sound_focus(soundFocusData);
17971 if (ret) {
17972 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17973 __func__, ret);
17974
17975 ret = -EINVAL;
17976 }
17977
17978 return ret;
17979}
17980
17981static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17982 struct snd_ctl_elem_value *ucontrol)
17983{
17984 int ret = 0;
17985 struct sound_focus_param soundFocusData;
17986
17987 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17988
17989 ret = voc_get_sound_focus(&soundFocusData);
17990 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017991 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017992 __func__, ret);
17993
17994 ret = -EINVAL;
17995 goto done;
17996 }
17997 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17998 sizeof(struct sound_focus_param));
17999
18000done:
18001 return ret;
18002}
18003
18004static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
18005 struct snd_ctl_elem_info *uinfo)
18006{
18007 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
18008 uinfo->count = sizeof(struct source_tracking_param);
18009
18010 return 0;
18011}
18012
18013static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
18014 struct snd_ctl_elem_value *ucontrol)
18015{
Meng Wang92edfde2018-04-24 12:18:37 +080018016 int ret = 0;
18017 struct source_tracking_param sourceTrackingData;
18018
18019 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
18020
18021 ret = voc_get_source_tracking(&sourceTrackingData);
18022 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018023 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080018024 __func__, ret);
18025
18026 ret = -EINVAL;
18027 goto done;
18028 }
18029 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
18030 sizeof(struct source_tracking_param));
18031
18032done:
18033 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018034}
18035
18036static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
18037 int *copp_idx)
18038{
18039 int i, idx, be_idx;
18040 int ret = 0;
18041 unsigned long copp;
18042
18043 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
18044
18045 ret = q6audio_validate_port(port_id);
18046 if (ret < 0) {
18047 pr_err("%s: port validation failed id 0x%x ret %d\n",
18048 __func__, port_id, ret);
18049
18050 ret = -EINVAL;
18051 goto done;
18052 }
18053
18054 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
18055 if (msm_bedais[be_idx].port_id == port_id)
18056 break;
18057 }
18058 if (be_idx >= MSM_BACKEND_DAI_MAX) {
18059 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
18060
18061 ret = -EINVAL;
18062 goto done;
18063 }
18064
18065 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018066 MSM_FRONTEND_DAI_MAX) {
18067 if (!(is_mm_lsm_fe_id(i) &&
18068 route_check_fe_id_adm_support(i)))
18069 continue;
18070
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018071 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
18072 copp = session_copp_map[i]
18073 [session_type][be_idx];
18074 if (test_bit(idx, &copp))
18075 break;
18076 }
18077 if (idx >= MAX_COPPS_PER_PORT)
18078 continue;
18079 else
18080 break;
18081 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018082 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018083 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018084
18085 ret = -EINVAL;
18086 goto done;
18087 }
18088 *copp_idx = idx;
18089 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
18090
18091done:
18092 return ret;
18093}
18094
18095static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
18096 const char *prefix, int *port_id)
18097{
18098 int ret = 0;
18099
18100 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
18101
18102 /*
18103 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
18104 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
18105 * and compare the string with the backend name to derive the port id.
18106 */
18107 if (!strcmp(kcontrol->id.name + strlen(prefix),
18108 "SLIMBUS_0")) {
18109 *port_id = SLIMBUS_0_TX;
18110 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18111 "TERT_MI2S")) {
18112 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
18113 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18114 "INT3_MI2S")) {
18115 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018116 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18117 "VA_CDC_DMA_TX_0")) {
18118 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018119 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18120 "TX_CDC_DMA_TX_3")) {
18121 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018122 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18123 "QUIN_TDM_TX_0")) {
18124 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018125 } else {
18126 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
18127 __func__, kcontrol->id.name);
18128
18129 ret = -EINVAL;
18130 goto done;
18131 }
18132 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
18133 __func__, kcontrol->id.name, *port_id);
18134
18135done:
18136 return ret;
18137}
18138
18139static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
18140 struct snd_ctl_elem_value *ucontrol)
18141{
18142 int ret = 0;
18143 struct sound_focus_param soundFocusData;
18144 int port_id, copp_idx;
18145
18146 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18147 "Sound Focus Audio Tx ", &port_id);
18148 if (ret != 0) {
18149 pr_err("%s: Error in deriving port id, err=%d\n",
18150 __func__, ret);
18151
18152 ret = -EINVAL;
18153 goto done;
18154 }
18155
18156 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18157 &copp_idx);
18158 if (ret) {
18159 pr_err("%s: Could not get copp idx for port_id=%d\n",
18160 __func__, port_id);
18161
18162 ret = -EINVAL;
18163 goto done;
18164 }
18165
18166 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
18167 sizeof(struct sound_focus_param));
18168
18169 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
18170 if (ret) {
18171 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
18172 __func__, ret);
18173
18174 ret = -EINVAL;
18175 goto done;
18176 }
18177
18178done:
18179 return ret;
18180}
18181
18182static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
18183 struct snd_ctl_elem_value *ucontrol)
18184{
18185 int ret = 0;
18186 struct sound_focus_param soundFocusData;
18187 int port_id, copp_idx;
18188
18189 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18190 "Sound Focus Audio Tx ", &port_id);
18191 if (ret) {
18192 pr_err("%s: Error in deriving port id, err=%d\n",
18193 __func__, ret);
18194
18195 ret = -EINVAL;
18196 goto done;
18197 }
18198
18199 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18200 &copp_idx);
18201 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018202 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018203 __func__, port_id);
18204
18205 ret = -EINVAL;
18206 goto done;
18207 }
18208
18209 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
18210 if (ret) {
18211 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
18212 __func__, ret);
18213
18214 ret = -EINVAL;
18215 goto done;
18216 }
18217
18218 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
18219 sizeof(struct sound_focus_param));
18220
18221done:
18222 return ret;
18223}
18224
18225static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
18226 struct snd_ctl_elem_value *ucontrol)
18227{
18228 int ret = 0;
18229 struct source_tracking_param sourceTrackingData;
18230 int port_id, copp_idx;
18231
18232 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18233 "Source Tracking Audio Tx ", &port_id);
18234 if (ret) {
18235 pr_err("%s: Error in deriving port id, err=%d\n",
18236 __func__, ret);
18237
18238 ret = -EINVAL;
18239 goto done;
18240 }
18241
18242 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18243 &copp_idx);
18244 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018245 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018246 __func__, port_id);
18247
18248 ret = -EINVAL;
18249 goto done;
18250 }
18251
18252 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
18253 if (ret) {
18254 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
18255 __func__, ret);
18256
18257 ret = -EINVAL;
18258 goto done;
18259 }
18260
18261 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
18262 sizeof(struct source_tracking_param));
18263
18264done:
18265 return ret;
18266}
18267
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018268static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
18269 struct snd_ctl_elem_info *uinfo)
18270{
18271 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
18272 uinfo->count = sizeof(struct doa_tracking_mon_param);
18273
18274 return 0;
18275}
18276
18277static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
18278 struct snd_ctl_elem_value *ucontrol)
18279{
18280 int ret = 0;
18281 struct doa_tracking_mon_param doa_tracking_data;
18282 int port_id, copp_idx;
18283
18284 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
18285 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18286 "Doa Tracking Monitor Listen ", &port_id);
18287 if (ret) {
18288 pr_err("%s: Error in deriving port id, err=%d\n",
18289 __func__, ret);
18290 ret = -EINVAL;
18291 goto done;
18292 }
18293
18294 /*
18295 * If copp id exists for given port id, query adm to get doa data.
18296 * Else query afe for doa tracking params.
18297 * This is to support in cases where LSM directly connects to
18298 * AFE for FFNS.
18299 */
18300 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18301 &copp_idx);
18302 if (!ret)
18303 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
18304 &doa_tracking_data);
18305 else
18306 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
18307
18308 if (ret) {
18309 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
18310 __func__, ret);
18311 ret = -EINVAL;
18312 goto done;
18313 }
18314
18315 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
18316 sizeof(struct doa_tracking_mon_param));
18317done:
18318 return ret;
18319}
18320
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018321static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
18322 {
18323 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18324 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18325 .name = "Sound Focus Voice Tx SLIMBUS_0",
18326 .info = msm_sound_focus_info,
18327 .get = msm_voice_sound_focus_get,
18328 .put = msm_voice_sound_focus_put,
18329 },
18330 {
18331 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18332 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18333 .name = "Source Tracking Voice Tx SLIMBUS_0",
18334 .info = msm_source_tracking_info,
18335 .get = msm_voice_source_tracking_get,
18336 },
18337 {
18338 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18339 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18340 .name = "Sound Focus Audio Tx SLIMBUS_0",
18341 .info = msm_sound_focus_info,
18342 .get = msm_audio_sound_focus_get,
18343 .put = msm_audio_sound_focus_put,
18344 },
18345 {
18346 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18347 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18348 .name = "Source Tracking Audio Tx SLIMBUS_0",
18349 .info = msm_source_tracking_info,
18350 .get = msm_audio_source_tracking_get,
18351 },
18352 {
18353 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18354 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18355 .name = "Sound Focus Voice Tx TERT_MI2S",
18356 .info = msm_sound_focus_info,
18357 .get = msm_voice_sound_focus_get,
18358 .put = msm_voice_sound_focus_put,
18359 },
18360 {
18361 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18362 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18363 .name = "Source Tracking Voice Tx TERT_MI2S",
18364 .info = msm_source_tracking_info,
18365 .get = msm_voice_source_tracking_get,
18366 },
18367 {
18368 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18369 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18370 .name = "Sound Focus Audio Tx TERT_MI2S",
18371 .info = msm_sound_focus_info,
18372 .get = msm_audio_sound_focus_get,
18373 .put = msm_audio_sound_focus_put,
18374 },
18375 {
18376 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18377 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18378 .name = "Source Tracking Audio Tx TERT_MI2S",
18379 .info = msm_source_tracking_info,
18380 .get = msm_audio_source_tracking_get,
18381 },
18382 {
18383 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18384 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18385 .name = "Sound Focus Voice Tx INT3_MI2S",
18386 .info = msm_sound_focus_info,
18387 .get = msm_voice_sound_focus_get,
18388 .put = msm_voice_sound_focus_put,
18389 },
18390 {
18391 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18392 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18393 .name = "Source Tracking Voice Tx INT3_MI2S",
18394 .info = msm_source_tracking_info,
18395 .get = msm_voice_source_tracking_get,
18396 },
18397 {
18398 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18399 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18400 .name = "Sound Focus Audio Tx INT3_MI2S",
18401 .info = msm_sound_focus_info,
18402 .get = msm_audio_sound_focus_get,
18403 .put = msm_audio_sound_focus_put,
18404 },
18405 {
18406 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18407 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18408 .name = "Source Tracking Audio Tx INT3_MI2S",
18409 .info = msm_source_tracking_info,
18410 .get = msm_audio_source_tracking_get,
18411 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018412 {
18413 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18414 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18415 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
18416 .info = msm_sound_focus_info,
18417 .get = msm_voice_sound_focus_get,
18418 .put = msm_voice_sound_focus_put,
18419 },
18420 {
18421 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18422 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18423 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
18424 .info = msm_source_tracking_info,
18425 .get = msm_voice_source_tracking_get,
18426 },
18427 {
18428 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18429 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18430 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
18431 .info = msm_sound_focus_info,
18432 .get = msm_audio_sound_focus_get,
18433 .put = msm_audio_sound_focus_put,
18434 },
18435 {
18436 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18437 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18438 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
18439 .info = msm_source_tracking_info,
18440 .get = msm_audio_source_tracking_get,
18441 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018442 {
18443 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18444 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18445 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
18446 .info = msm_sound_focus_info,
18447 .get = msm_voice_sound_focus_get,
18448 .put = msm_voice_sound_focus_put,
18449 },
18450 {
18451 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18452 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18453 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
18454 .info = msm_source_tracking_info,
18455 .get = msm_voice_source_tracking_get,
18456 },
18457 {
18458 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18459 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18460 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
18461 .info = msm_sound_focus_info,
18462 .get = msm_audio_sound_focus_get,
18463 .put = msm_audio_sound_focus_put,
18464 },
18465 {
18466 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18467 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18468 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
18469 .info = msm_source_tracking_info,
18470 .get = msm_audio_source_tracking_get,
18471 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018472 {
18473 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18474 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18475 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
18476 .info = msm_sound_focus_info,
18477 .get = msm_voice_sound_focus_get,
18478 .put = msm_voice_sound_focus_put,
18479 },
18480 {
18481 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18482 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18483 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
18484 .info = msm_source_tracking_info,
18485 .get = msm_voice_source_tracking_get,
18486 },
18487 {
18488 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18489 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18490 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
18491 .info = msm_sound_focus_info,
18492 .get = msm_audio_sound_focus_get,
18493 .put = msm_audio_sound_focus_put,
18494 },
18495 {
18496 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18497 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18498 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
18499 .info = msm_source_tracking_info,
18500 .get = msm_audio_source_tracking_get,
18501 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018502 {
18503 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18504 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18505 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
18506 .info = msm_doa_tracking_mon_info,
18507 .get = msm_doa_tracking_mon_get,
18508 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018509};
18510
18511static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
18512 struct snd_ctl_elem_value *ucontrol)
18513{
18514 int ret = 0;
18515 int item;
18516 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18517
18518 pr_debug("%s item is %d\n", __func__,
18519 ucontrol->value.enumerated.item[0]);
18520 mutex_lock(&routing_lock);
18521 item = ucontrol->value.enumerated.item[0];
18522 if (item < e->items) {
18523 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18524 __func__, e->shift_l, e->values[item]);
18525 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18526 e->values[item] < MSM_BACKEND_DAI_MAX)
18527 /* Enable feedback TX path */
18528 ret = afe_spk_prot_feed_back_cfg(
18529 msm_bedais[e->values[item]].port_id,
18530 msm_bedais[e->shift_l].port_id, 1, 0, 1);
18531 else {
18532 pr_debug("%s values are out of range item %d\n",
18533 __func__, e->values[item]);
18534 /* Disable feedback TX path */
18535 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18536 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
18537 else
18538 ret = -EINVAL;
18539 }
18540 } else {
18541 pr_err("%s item value is out of range item\n", __func__);
18542 ret = -EINVAL;
18543 }
18544 mutex_unlock(&routing_lock);
18545 return ret;
18546}
18547
18548static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
18549 struct snd_ctl_elem_value *ucontrol)
18550{
18551 int ret = 0;
18552 int item;
18553 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18554
18555 pr_debug("%s item is %d\n", __func__,
18556 ucontrol->value.enumerated.item[0]);
18557 mutex_lock(&routing_lock);
18558 item = ucontrol->value.enumerated.item[0];
18559 if (item < e->items) {
18560 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18561 __func__, e->shift_l, e->values[item]);
18562 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18563 e->values[item] < MSM_BACKEND_DAI_MAX)
18564 /* Enable feedback TX path */
18565 ret = afe_spk_prot_feed_back_cfg(
18566 msm_bedais[e->values[item]].port_id,
18567 msm_bedais[e->shift_l].port_id,
18568 1, 1, 1);
18569 else {
18570 pr_debug("%s values are out of range item %d\n",
18571 __func__, e->values[item]);
18572 /* Disable feedback TX path */
18573 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18574 ret = afe_spk_prot_feed_back_cfg(0,
18575 0, 0, 0, 0);
18576 else
18577 ret = -EINVAL;
18578 }
18579 } else {
18580 pr_err("%s item value is out of range item\n", __func__);
18581 ret = -EINVAL;
18582 }
18583 mutex_unlock(&routing_lock);
18584 return ret;
18585}
18586
18587static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
18588 struct snd_ctl_elem_value *ucontrol)
18589{
18590 pr_debug("%s\n", __func__);
18591 return 0;
18592}
18593
18594static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
18595 struct snd_ctl_elem_value *ucontrol)
18596{
18597 pr_debug("%s\n", __func__);
18598 ucontrol->value.enumerated.item[0] = 0;
18599 return 0;
18600}
18601
18602static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
18603 "ZERO", "SLIM4_TX"
18604};
18605
18606static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
18607 "ZERO", "SLIM4_TX"
18608};
18609
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018610static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
18611 "ZERO", "WSA_CDC_DMA_TX_0"
18612};
18613
18614static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
18615 "ZERO", "WSA_CDC_DMA_TX_0"
18616};
18617
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018618static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
18619 "ZERO", "SENARY_TX"
18620};
18621
18622static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
18623 "ZERO", "INT5_MI2S_TX"
18624};
18625
18626static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
18627 "ZERO", "INT5_MI2S_TX"
18628};
18629
Josh Kirschea69fed2018-12-11 16:15:08 -080018630static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018631 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18632};
18633
Josh Kirschea69fed2018-12-11 16:15:08 -080018634static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018635 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18636};
18637
Josh Kirschea69fed2018-12-11 16:15:08 -080018638static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018639 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18640};
18641
Josh Kirschea69fed2018-12-11 16:15:08 -080018642static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018643 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18644};
18645
18646
Josh Kirschea69fed2018-12-11 16:15:08 -080018647static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018648 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18649};
18650
Josh Kirschea69fed2018-12-11 16:15:08 -080018651static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018652 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18653};
18654
Josh Kirschea69fed2018-12-11 16:15:08 -080018655static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018656 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18657};
18658
18659static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18660 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18661 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18662 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18663
18664static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18665 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18666 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18667 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18668
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018669static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18670 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18671 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18672 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18673
18674static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18675 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18676 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18677 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18678
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018679static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18680 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18681 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18682 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18683
18684static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18685 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18686 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18687 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18688 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18689
18690static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18691 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18692 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18693 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18694 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18695
18696static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18697 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18698 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18699 spkr_prot_put_vi_lch_port);
18700
18701static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18702 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18703 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18704 spkr_prot_put_vi_rch_port);
18705
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018706static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18707 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18708 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18709 spkr_prot_put_vi_lch_port);
18710
18711static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18712 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18713 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18714 spkr_prot_put_vi_rch_port);
18715
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018716static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18717 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18718 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18719 spkr_prot_put_vi_lch_port);
18720
18721static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18722 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18723 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18724 spkr_prot_put_vi_lch_port);
18725
18726static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18727 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18728 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18729 spkr_prot_put_vi_rch_port);
18730
18731static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18732 /* Frontend AIF */
18733 /* Widget name equals to Front-End DAI name<Need confirmation>,
18734 * Stream name must contains substring of front-end dai name
18735 */
18736 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18737 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18738 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18739 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18740 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18741 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18742 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18743 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18744 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18745 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18746 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18747 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18748 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18749 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18750 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18751 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18752 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018753 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018754 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018755 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18756 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18757 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18758 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18759 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18760 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18761 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18762 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18763 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018764 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018765 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018766 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18767 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18768 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18769 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018770 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018771 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018772 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18773 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018774 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18775 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18776 "VoiceMMode1 Playback", 0, 0, 0, 0),
18777 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18778 "VoiceMMode1 Capture", 0, 0, 0, 0),
18779 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18780 "VoiceMMode2 Playback", 0, 0, 0, 0),
18781 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18782 "VoiceMMode2 Capture", 0, 0, 0, 0),
18783 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18784 0, 0, 0, 0),
18785 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18786 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018787 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18788 0, 0, 0, 0),
18789 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18790 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018791 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18792 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018793 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18794 0, 0, 0, 0),
18795 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18796 0, 0, 0, 0),
18797 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18798 0, 0, 0, 0),
18799 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18800 0, 0, 0, 0),
18801 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18802 0, 0, 0, 0),
18803 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18804 0, 0, 0, 0),
18805 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18806 0, 0, 0, 0),
18807 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18808 0, 0, 0, 0),
18809 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18810 0, 0, 0, 0),
18811 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18812 0, 0, 0, 0),
18813 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18814 0, 0, 0, 0),
18815 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18816 0, 0, 0, 0),
18817 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18818 0, 0, 0, 0),
18819 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18820 0, 0, 0, 0),
18821 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18822 0, 0, 0, 0),
18823 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18824 0, 0, 0, 0),
18825 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18826 0, 0, 0, 0),
18827 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18828 0, 0, 0, 0),
18829 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18830 0, 0, 0, 0),
18831 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18832 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18833 0, 0, 0, 0),
18834 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18835 "INT0 MI2S_RX Hostless Playback",
18836 0, 0, 0, 0),
18837 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18838 "INT4 MI2S_RX Hostless Playback",
18839 0, 0, 0, 0),
18840 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18841 "Primary MI2S_RX Hostless Playback",
18842 0, 0, 0, 0),
18843 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18844 "Secondary MI2S_RX Hostless Playback",
18845 0, 0, 0, 0),
18846 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18847 "Tertiary MI2S_RX Hostless Playback",
18848 0, 0, 0, 0),
18849 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18850 "Quaternary MI2S_RX Hostless Playback",
18851 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018852 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18853 "Quinary MI2S_RX Hostless Playback",
18854 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018855
18856 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18857 0, 0, 0, 0),
18858 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18859 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018860 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18861 0, 0, 0, 0),
18862 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18863 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018864 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18865 0, 0, 0, 0),
18866 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18867 "INT3 MI2S_TX Hostless Capture",
18868 0, 0, 0, 0),
18869 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18870 "Tertiary MI2S_TX Hostless Capture",
18871 0, 0, 0, 0),
18872 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18873 "Secondary MI2S_TX Hostless Capture",
18874 0, 0, 0, 0),
18875 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18876 "Primary MI2S_TX Hostless Capture",
18877 0, 0, 0, 0),
18878 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18879 0, 0, 0, 0),
18880 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18881 0, 0, 0, 0),
18882 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18883 "Quaternary MI2S_TX Hostless Capture",
18884 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018885 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18886 "Quinary MI2S_TX Hostless Capture",
18887 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018888
18889 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18890 "Primary TDM0 Hostless Playback",
18891 0, 0, 0, 0),
18892 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18893 "Primary TDM0 Hostless Capture",
18894 0, 0, 0, 0),
18895 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18896 "Primary TDM1 Hostless Playback",
18897 0, 0, 0, 0),
18898 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18899 "Primary TDM1 Hostless Capture",
18900 0, 0, 0, 0),
18901 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18902 "Primary TDM2 Hostless Playback",
18903 0, 0, 0, 0),
18904 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18905 "Primary TDM2 Hostless Capture",
18906 0, 0, 0, 0),
18907 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18908 "Primary TDM3 Hostless Playback",
18909 0, 0, 0, 0),
18910 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18911 "Primary TDM3 Hostless Capture",
18912 0, 0, 0, 0),
18913 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18914 "Primary TDM4 Hostless Playback",
18915 0, 0, 0, 0),
18916 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18917 "Primary TDM4 Hostless Capture",
18918 0, 0, 0, 0),
18919 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18920 "Primary TDM5 Hostless Playback",
18921 0, 0, 0, 0),
18922 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18923 "Primary TDM5 Hostless Capture",
18924 0, 0, 0, 0),
18925 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18926 "Primary TDM6 Hostless Playback",
18927 0, 0, 0, 0),
18928 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18929 "Primary TDM6 Hostless Capture",
18930 0, 0, 0, 0),
18931 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18932 "Primary TDM7 Hostless Playback",
18933 0, 0, 0, 0),
18934 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18935 "Primary TDM7 Hostless Capture",
18936 0, 0, 0, 0),
18937 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18938 "Secondary TDM0 Hostless Playback",
18939 0, 0, 0, 0),
18940 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18941 "Secondary TDM0 Hostless Capture",
18942 0, 0, 0, 0),
18943 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18944 "Secondary TDM1 Hostless Playback",
18945 0, 0, 0, 0),
18946 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18947 "Secondary TDM1 Hostless Capture",
18948 0, 0, 0, 0),
18949 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18950 "Secondary TDM2 Hostless Playback",
18951 0, 0, 0, 0),
18952 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18953 "Secondary TDM2 Hostless Capture",
18954 0, 0, 0, 0),
18955 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18956 "Secondary TDM3 Hostless Playback",
18957 0, 0, 0, 0),
18958 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18959 "Secondary TDM3 Hostless Capture",
18960 0, 0, 0, 0),
18961 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18962 "Secondary TDM4 Hostless Playback",
18963 0, 0, 0, 0),
18964 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18965 "Secondary TDM4 Hostless Capture",
18966 0, 0, 0, 0),
18967 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18968 "Secondary TDM5 Hostless Playback",
18969 0, 0, 0, 0),
18970 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18971 "Secondary TDM5 Hostless Capture",
18972 0, 0, 0, 0),
18973 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18974 "Secondary TDM6 Hostless Playback",
18975 0, 0, 0, 0),
18976 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18977 "Secondary TDM6 Hostless Capture",
18978 0, 0, 0, 0),
18979 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18980 "Secondary TDM7 Hostless Playback",
18981 0, 0, 0, 0),
18982 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18983 "Secondary TDM7 Hostless Capture",
18984 0, 0, 0, 0),
18985 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18986 "Tertiary TDM0 Hostless Playback",
18987 0, 0, 0, 0),
18988 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18989 "Tertiary TDM0 Hostless Capture",
18990 0, 0, 0, 0),
18991 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18992 "Tertiary TDM1 Hostless Playback",
18993 0, 0, 0, 0),
18994 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18995 "Tertiary TDM1 Hostless Capture",
18996 0, 0, 0, 0),
18997 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18998 "Tertiary TDM2 Hostless Playback",
18999 0, 0, 0, 0),
19000 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
19001 "Tertiary TDM2 Hostless Capture",
19002 0, 0, 0, 0),
19003 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
19004 "Tertiary TDM3 Hostless Playback",
19005 0, 0, 0, 0),
19006 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
19007 "Tertiary TDM3 Hostless Capture",
19008 0, 0, 0, 0),
19009 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
19010 "Tertiary TDM4 Hostless Playback",
19011 0, 0, 0, 0),
19012 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
19013 "Tertiary TDM4 Hostless Capture",
19014 0, 0, 0, 0),
19015 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
19016 "Tertiary TDM5 Hostless Playback",
19017 0, 0, 0, 0),
19018 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
19019 "Tertiary TDM5 Hostless Capture",
19020 0, 0, 0, 0),
19021 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
19022 "Tertiary TDM6 Hostless Playback",
19023 0, 0, 0, 0),
19024 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
19025 "Tertiary TDM6 Hostless Capture",
19026 0, 0, 0, 0),
19027 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
19028 "Tertiary TDM7 Hostless Playback",
19029 0, 0, 0, 0),
19030 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
19031 "Tertiary TDM7 Hostless Capture",
19032 0, 0, 0, 0),
19033 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
19034 "Quaternary TDM0 Hostless Playback",
19035 0, 0, 0, 0),
19036 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
19037 "Quaternary TDM0 Hostless Capture",
19038 0, 0, 0, 0),
19039 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
19040 "Quaternary TDM1 Hostless Playback",
19041 0, 0, 0, 0),
19042 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
19043 "Quaternary TDM1 Hostless Capture",
19044 0, 0, 0, 0),
19045 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
19046 "Quaternary TDM2 Hostless Playback",
19047 0, 0, 0, 0),
19048 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
19049 "Quaternary TDM2 Hostless Capture",
19050 0, 0, 0, 0),
19051 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
19052 "Quaternary TDM3 Hostless Playback",
19053 0, 0, 0, 0),
19054 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
19055 "Quaternary TDM3 Hostless Capture",
19056 0, 0, 0, 0),
19057 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
19058 "Quaternary TDM4 Hostless Playback",
19059 0, 0, 0, 0),
19060 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
19061 "Quaternary TDM4 Hostless Capture",
19062 0, 0, 0, 0),
19063 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
19064 "Quaternary TDM5 Hostless Playback",
19065 0, 0, 0, 0),
19066 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
19067 "Quaternary TDM5 Hostless Capture",
19068 0, 0, 0, 0),
19069 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
19070 "Quaternary TDM6 Hostless Playback",
19071 0, 0, 0, 0),
19072 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
19073 "Quaternary TDM6 Hostless Capture",
19074 0, 0, 0, 0),
19075 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
19076 "Quaternary TDM7 Hostless Playback",
19077 0, 0, 0, 0),
19078 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
19079 "Quaternary TDM7 Hostless Capture",
19080 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019081 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
19082 "Quinary TDM0 Hostless Playback",
19083 0, 0, 0, 0),
19084 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
19085 "Quinary TDM0 Hostless Capture",
19086 0, 0, 0, 0),
19087 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
19088 "Quinary TDM1 Hostless Playback",
19089 0, 0, 0, 0),
19090 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
19091 "Quinary TDM1 Hostless Capture",
19092 0, 0, 0, 0),
19093 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
19094 "Quinary TDM2 Hostless Playback",
19095 0, 0, 0, 0),
19096 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
19097 "Quinary TDM2 Hostless Capture",
19098 0, 0, 0, 0),
19099 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
19100 "Quinary TDM3 Hostless Playback",
19101 0, 0, 0, 0),
19102 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
19103 "Quinary TDM3 Hostless Capture",
19104 0, 0, 0, 0),
19105 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
19106 "Quinary TDM4 Hostless Playback",
19107 0, 0, 0, 0),
19108 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
19109 "Quinary TDM4 Hostless Capture",
19110 0, 0, 0, 0),
19111 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
19112 "Quinary TDM5 Hostless Playback",
19113 0, 0, 0, 0),
19114 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
19115 "Quinary TDM5 Hostless Capture",
19116 0, 0, 0, 0),
19117 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
19118 "Quinary TDM6 Hostless Playback",
19119 0, 0, 0, 0),
19120 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
19121 "Quinary TDM6 Hostless Capture",
19122 0, 0, 0, 0),
19123 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
19124 "Quinary TDM7 Hostless Playback",
19125 0, 0, 0, 0),
19126 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
19127 "Quinary TDM7 Hostless Capture",
19128 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019129
19130 /* LSM */
19131 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
19132 0, 0, 0, 0),
19133 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
19134 0, 0, 0, 0),
19135 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
19136 0, 0, 0, 0),
19137 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
19138 0, 0, 0, 0),
19139 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
19140 0, 0, 0, 0),
19141 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
19142 0, 0, 0, 0),
19143 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
19144 0, 0, 0, 0),
19145 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
19146 0, 0, 0, 0),
19147 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
19148 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
19149 /* Backend AIF */
19150 /* Stream name equals to backend dai link stream name */
19151 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
19152 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
19153 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020019154 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
19155 0, 0, 0, 0),
19156 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
19157 0, 0, 0, 0),
19158 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
19159 0, 0, 0, 0),
19160 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
19161 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019162 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
19163 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
19164 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
19165 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
19166 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
19167 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019168 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
19169 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019170 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
19171 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
19172 0, 0, 0, 0),
19173 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
19174 0, 0, 0, 0),
19175 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
19176 0, 0, 0, 0),
19177 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
19178 "Secondary MI2S Playback SD1",
19179 0, 0, 0, 0),
19180 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
19181 0, 0, 0, 0),
19182 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
19183 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019184 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
19185 0, 0, 0, 0),
19186 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
19187 0, 0, 0, 0),
19188 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
19189 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019190 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
19191 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019192 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
19193 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019194 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
19195 0, 0, 0, 0),
19196 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
19197 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
19198 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
19199 0, 0, 0, 0),
19200 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
19201 0, 0, 0, 0),
19202 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
19203 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019204 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
19205 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019206 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
19207 0, 0, 0, 0),
19208 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
19209 0, 0, 0, 0),
19210 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
19211 0, 0, 0, 0),
19212 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
19213 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
19214 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
19215 0, 0, 0, 0),
19216 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
19217 0, 0, 0, 0),
19218 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
19219 0, 0, 0, 0),
19220 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
19221 0, 0, 0, 0),
19222 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
19223 0, 0, 0, 0),
19224 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
19225 0, 0, 0, 0),
19226 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
19227 0, 0, 0, 0),
19228 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
19229 0, 0, 0, 0),
19230 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
19231 0, 0, 0, 0),
19232 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
19233 0, 0, 0, 0),
19234 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
19235 0, 0, 0, 0),
19236 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
19237 0, 0, 0, 0),
19238 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
19239 0, 0, 0, 0),
19240 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
19241 0, 0, 0, 0),
19242 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
19243 0, 0, 0, 0),
19244 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
19245 0, 0, 0, 0),
19246 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
19247 0, 0, 0, 0),
19248 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
19249 0, 0, 0, 0),
19250 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
19251 0, 0, 0, 0),
19252 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
19253 0, 0, 0, 0),
19254 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
19255 0, 0, 0, 0),
19256 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
19257 0, 0, 0, 0),
19258 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
19259 0, 0, 0, 0),
19260 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
19261 0, 0, 0, 0),
19262 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
19263 0, 0, 0, 0),
19264 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
19265 0, 0, 0, 0),
19266 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
19267 0, 0, 0, 0),
19268 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
19269 0, 0, 0, 0),
19270 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
19271 0, 0, 0, 0),
19272 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
19273 0, 0, 0, 0),
19274 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
19275 0, 0, 0, 0),
19276 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
19277 0, 0, 0, 0),
19278 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
19279 0, 0, 0, 0),
19280 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
19281 0, 0, 0, 0),
19282 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
19283 0, 0, 0, 0),
19284 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
19285 0, 0, 0, 0),
19286 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
19287 0, 0, 0, 0),
19288 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
19289 0, 0, 0, 0),
19290 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
19291 0, 0, 0, 0),
19292 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
19293 0, 0, 0, 0),
19294 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
19295 0, 0, 0, 0),
19296 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
19297 0, 0, 0, 0),
19298 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
19299 0, 0, 0, 0),
19300 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
19301 0, 0, 0, 0),
19302 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
19303 0, 0, 0, 0),
19304 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
19305 0, 0, 0, 0),
19306 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
19307 0, 0, 0, 0),
19308 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
19309 0, 0, 0, 0),
19310 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
19311 0, 0, 0, 0),
19312 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
19313 0, 0, 0, 0),
19314 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
19315 0, 0, 0, 0),
19316 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
19317 0, 0, 0, 0),
19318 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
19319 0, 0, 0, 0),
19320 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
19321 0, 0, 0, 0),
19322 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
19323 0, 0, 0, 0),
19324 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
19325 0, 0, 0, 0),
19326 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
19327 0, 0, 0, 0),
19328 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
19329 0, 0, 0, 0),
19330 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
19331 0, 0, 0, 0),
19332 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
19333 0, 0, 0, 0),
19334 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
19335 0, 0, 0, 0),
19336 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
19337 0, 0, 0, 0),
19338 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
19339 0, 0, 0, 0),
19340 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
19341 0, 0, 0, 0),
19342 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
19343 0, 0, 0, 0),
19344 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
19345 0, 0, 0, 0),
19346 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
19347 0, 0, 0, 0),
19348 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
19349 0, 0, 0, 0),
19350 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
19351 0, 0, 0, 0),
19352 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
19353 0, 0, 0, 0),
19354 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
19355 0, 0, 0, 0),
19356 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
19357 0, 0, 0, 0),
19358 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
19359 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019360 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
19361 0, 0, 0, 0),
19362 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
19363 0, 0, 0, 0),
19364 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
19365 0, 0, 0, 0),
19366 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
19367 0, 0, 0, 0),
19368 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
19369 0, 0, 0, 0),
19370 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
19371 0, 0, 0, 0),
19372 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
19373 0, 0, 0, 0),
19374 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
19375 0, 0, 0, 0),
19376 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
19377 0, 0, 0, 0),
19378 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
19379 0, 0, 0, 0),
19380 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
19381 0, 0, 0, 0),
19382 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
19383 0, 0, 0, 0),
19384 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
19385 0, 0, 0, 0),
19386 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
19387 0, 0, 0, 0),
19388 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
19389 0, 0, 0, 0),
19390 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
19391 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019392 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
19393 0, 0, 0, 0),
19394 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
19395 0, 0, 0, 0),
19396 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
19397 0, 0, 0, 0),
19398 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
19399 0, 0, 0, 0),
19400 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
19401 0, 0, 0, 0),
19402 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
19403 0, 0, 0, 0),
19404 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
19405 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019406 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
19407 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019408 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
19409 0, 0, 0, 0),
19410 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
19411 0, 0, 0, 0),
19412 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
19413 0, 0, 0, 0),
19414 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
19415 0, 0, 0, 0),
19416 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
19417 0, 0, 0, 0),
19418 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
19419 0, 0, 0, 0),
19420 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
19421 0, 0, 0, 0),
19422 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
19423 0, 0, 0, 0),
19424 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
19425 0, 0, 0, 0),
19426 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
19427 0, 0, 0, 0),
19428 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
19429 0, 0, 0, 0),
19430 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
19431 0, 0, 0, 0),
19432 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
19433 0, 0, 0, 0),
19434 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
19435 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019436 /* incall */
19437 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
19438 0, 0, 0, 0),
19439 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
19440 0, 0, 0, 0),
19441 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
19442 0, 0, 0, 0),
19443 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
19444 0, 0, 0, 0),
19445 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
19446 0, 0, 0, 0),
19447 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
19448 0, 0, 0, 0),
19449 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
19450 0, 0, 0, 0),
19451 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
19452 0, 0, 0, 0),
19453 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
19454
19455 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
19456 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
19457 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
19458 0, 0, 0, 0),
19459 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
19460 0, 0, 0, 0),
19461 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
19462 0, 0, 0, 0),
19463 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
19464 0, 0, 0, 0),
19465 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
19466 0, 0, 0, 0),
19467 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
19468 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019469 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
19470 0, 0, 0, 0),
19471 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
19472 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019473 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
19474 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
19475 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
19476 0, 0, 0, 0),
19477 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
19478 0, 0, 0, 0),
19479 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
19480 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
19481 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
19482 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
19483 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
19484 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
19485 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
19486 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
19487 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
19488 /* In- call recording */
19489 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
19490 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053019491 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
19492 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019493 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
19494 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
19495
19496 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
19497 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019498 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
19499 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019500 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
19501 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
19502
19503 /* Switch Definitions */
19504 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
19505 &slim_fm_switch_mixer_controls),
19506 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
19507 &slim1_fm_switch_mixer_controls),
19508 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
19509 &slim3_fm_switch_mixer_controls),
19510 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
19511 &slim4_fm_switch_mixer_controls),
19512 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
19513 &slim6_fm_switch_mixer_controls),
19514 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19515 &pcm_rx_switch_mixer_controls),
19516 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19517 &int0_mi2s_rx_switch_mixer_controls),
19518 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19519 &int4_mi2s_rx_switch_mixer_controls),
19520 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19521 &pri_mi2s_rx_switch_mixer_controls),
19522 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19523 &sec_mi2s_rx_switch_mixer_controls),
19524 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19525 &tert_mi2s_rx_switch_mixer_controls),
19526 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19527 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053019528 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19529 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080019530 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
19531 &sco_slim7_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019532 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19533 &hfp_pri_aux_switch_mixer_controls),
19534 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19535 &hfp_aux_switch_mixer_controls),
19536 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
19537 &hfp_int_switch_mixer_controls),
19538 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19539 &hfp_slim7_switch_mixer_controls),
19540 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
19541 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080019542 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19543 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019544 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019545 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019546 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019547 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019548
19549 /* Mixer definitions */
19550 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19551 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
19552 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19553 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
19554 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19555 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
19556 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19557 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
19558 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19559 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
19560 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19561 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019562 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19563 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019564 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
19565 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
19566 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
19567 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019568 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
19569 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020019570 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19571 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
19572 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19573 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019574 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19575 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
19576 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19577 quaternary_mi2s_rx_mixer_controls,
19578 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
19579 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19580 tertiary_mi2s_rx_mixer_controls,
19581 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
19582 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19583 secondary_mi2s_rx_mixer_controls,
19584 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
19585 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19586 secondary_mi2s_rx2_mixer_controls,
19587 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
19588 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19589 primary_mi2s_rx_mixer_controls,
19590 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
19591 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19592 int0_mi2s_rx_mixer_controls,
19593 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
19594 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19595 int4_mi2s_rx_mixer_controls,
19596 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
19597 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19598 quinary_mi2s_rx_mixer_controls,
19599 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
19600 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19601 pri_tdm_rx_0_mixer_controls,
19602 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
19603 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19604 pri_tdm_rx_1_mixer_controls,
19605 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
19606 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19607 pri_tdm_rx_2_mixer_controls,
19608 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
19609 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19610 pri_tdm_rx_3_mixer_controls,
19611 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
19612 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19613 pri_tdm_tx_0_mixer_controls,
19614 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
19615 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19616 sec_tdm_rx_0_mixer_controls,
19617 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
19618 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19619 sec_tdm_rx_1_mixer_controls,
19620 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
19621 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19622 sec_tdm_rx_2_mixer_controls,
19623 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
19624 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19625 sec_tdm_rx_3_mixer_controls,
19626 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
19627 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19628 sec_tdm_tx_0_mixer_controls,
19629 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
19630 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19631 tert_tdm_rx_0_mixer_controls,
19632 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
19633 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19634 tert_tdm_tx_0_mixer_controls,
19635 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
19636 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19637 tert_tdm_rx_1_mixer_controls,
19638 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19639 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19640 tert_tdm_rx_2_mixer_controls,
19641 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19642 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19643 tert_tdm_rx_3_mixer_controls,
19644 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19645 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19646 tert_tdm_rx_4_mixer_controls,
19647 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19648 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19649 quat_tdm_rx_0_mixer_controls,
19650 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19651 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19652 quat_tdm_tx_0_mixer_controls,
19653 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19654 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19655 quat_tdm_rx_1_mixer_controls,
19656 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19657 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19658 quat_tdm_rx_2_mixer_controls,
19659 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19660 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19661 quat_tdm_rx_3_mixer_controls,
19662 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019663 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19664 quin_tdm_rx_0_mixer_controls,
19665 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19666 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19667 quin_tdm_tx_0_mixer_controls,
19668 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19669 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19670 quin_tdm_rx_1_mixer_controls,
19671 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19672 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19673 quin_tdm_rx_2_mixer_controls,
19674 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19675 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19676 quin_tdm_rx_3_mixer_controls,
19677 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019678 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19679 wsa_cdc_dma_rx_0_mixer_controls,
19680 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19681 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19682 wsa_cdc_dma_rx_1_mixer_controls,
19683 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019684 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19685 rx_cdc_dma_rx_0_mixer_controls,
19686 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19687 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19688 rx_cdc_dma_rx_1_mixer_controls,
19689 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19690 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19691 rx_cdc_dma_rx_2_mixer_controls,
19692 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19693 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19694 rx_cdc_dma_rx_3_mixer_controls,
19695 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19696 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19697 rx_cdc_dma_rx_4_mixer_controls,
19698 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19699 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19700 rx_cdc_dma_rx_5_mixer_controls,
19701 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19702 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19703 rx_cdc_dma_rx_6_mixer_controls,
19704 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19705 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19706 rx_cdc_dma_rx_7_mixer_controls,
19707 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019708 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19709 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19710 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19711 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19712 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19713 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19714 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19715 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19716 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19717 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19718 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19719 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19720 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19721 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19722 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19723 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019724 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19725 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019726 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19727 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019728 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19729 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19730 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19731 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19732 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19733 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19734 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19735 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019736 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19737 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019738 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19739 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019740 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19741 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19742 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19743 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019744 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19745 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19746 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19747 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19748 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19749 tert_auxpcm_rx_mixer_controls,
19750 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19751 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19752 quat_auxpcm_rx_mixer_controls,
19753 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019754 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19755 quin_auxpcm_rx_mixer_controls,
19756 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019757 /* incall */
19758 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19759 incall_music_delivery_mixer_controls,
19760 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19761 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19762 incall_music2_delivery_mixer_controls,
19763 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19764 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19765 slimbus_4_rx_mixer_controls,
19766 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19767 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19768 slimbus_6_rx_mixer_controls,
19769 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19770 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19771 usb_audio_rx_mixer_controls,
19772 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19773 /* Voice Mixer */
19774 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19775 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19776 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19777 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19778 SND_SOC_NOPM, 0, 0,
19779 sec_i2s_rx_voice_mixer_controls,
19780 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19781 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19782 SND_SOC_NOPM, 0, 0,
19783 sec_mi2s_rx_voice_mixer_controls,
19784 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19785 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19786 SND_SOC_NOPM, 0, 0,
19787 slimbus_rx_voice_mixer_controls,
19788 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19789 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19790 SND_SOC_NOPM, 0, 0,
19791 bt_sco_rx_voice_mixer_controls,
19792 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19793 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19794 SND_SOC_NOPM, 0, 0,
19795 afe_pcm_rx_voice_mixer_controls,
19796 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19797 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19798 SND_SOC_NOPM, 0, 0,
19799 aux_pcm_rx_voice_mixer_controls,
19800 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19801 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19802 SND_SOC_NOPM, 0, 0,
19803 sec_aux_pcm_rx_voice_mixer_controls,
19804 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19805 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19806 SND_SOC_NOPM, 0, 0,
19807 tert_aux_pcm_rx_voice_mixer_controls,
19808 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19809 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19810 SND_SOC_NOPM, 0, 0,
19811 quat_aux_pcm_rx_voice_mixer_controls,
19812 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019813 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19814 SND_SOC_NOPM, 0, 0,
19815 quin_aux_pcm_rx_voice_mixer_controls,
19816 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019817 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19818 SND_SOC_NOPM, 0, 0,
19819 hdmi_rx_voice_mixer_controls,
19820 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19821 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19822 SND_SOC_NOPM, 0, 0,
19823 mi2s_rx_voice_mixer_controls,
19824 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19825 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19826 SND_SOC_NOPM, 0, 0,
19827 pri_mi2s_rx_voice_mixer_controls,
19828 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19829 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19830 SND_SOC_NOPM, 0, 0,
19831 int0_mi2s_rx_voice_mixer_controls,
19832 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19833 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19834 SND_SOC_NOPM, 0, 0,
19835 int4_mi2s_rx_voice_mixer_controls,
19836 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19837 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19838 SND_SOC_NOPM, 0, 0,
19839 tert_mi2s_rx_voice_mixer_controls,
19840 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19841 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19842 SND_SOC_NOPM, 0, 0,
19843 quat_mi2s_rx_voice_mixer_controls,
19844 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19845 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19846 SND_SOC_NOPM, 0, 0,
19847 quin_mi2s_rx_voice_mixer_controls,
19848 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19849 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19850 SND_SOC_NOPM, 0, 0,
19851 quat_tdm_rx_2_voice_mixer_controls,
19852 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019853 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19854 SND_SOC_NOPM, 0, 0,
19855 wsa_cdc_dma_rx_0_voice_mixer_controls,
19856 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19857 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19858 SND_SOC_NOPM, 0, 0,
19859 rx_cdc_dma_rx_0_voice_mixer_controls,
19860 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019861 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19862 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19863 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019864 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19865 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19866 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19867 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19868 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19869 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19870 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19871 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19872 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19873 int_bt_a2dp_rx_mixer_controls,
19874 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19875 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19876 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19877 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19878 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19879 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19880 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19881 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19882 tx_voice2_stub_mixer_controls,
19883 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19884 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19885 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19886 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19887 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19888 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19889 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19890 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19891 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19892 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19893 SND_SOC_NOPM, 0, 0,
19894 slimbus_6_rx_voice_mixer_controls,
19895 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19896 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19897 slimbus_7_rx_voice_mixer_controls,
19898 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19899 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19900 slimbus_8_rx_voice_mixer_controls,
19901 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19902 /* port mixer */
19903 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19904 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19905 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19906 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19907 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19908 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19909 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19910 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19911 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19912 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19913 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19914 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19915 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19916 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19917 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019918 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19919 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19920 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019921 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19922 sbus_1_rx_port_mixer_controls,
19923 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19924 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19925 bt_sco_rx_port_mixer_controls,
19926 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19927 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19928 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19929 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19930 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19931 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19932 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19933 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19934 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19935 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019936 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019937 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19938 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019939 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19940 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19941 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19942 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19943 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19944 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19945 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19946 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19947 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19948 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19949 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19950 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19951 primary_mi2s_rx_port_mixer_controls,
19952 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19953 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19954 sec_mi2s_rx_port_mixer_controls,
19955 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19956 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19957 tert_mi2s_rx_port_mixer_controls,
19958 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19959 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19960 quat_mi2s_rx_port_mixer_controls,
19961 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019962 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19963 quin_mi2s_rx_port_mixer_controls,
19964 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019965 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19966 pri_tdm_rx_0_port_mixer_controls,
19967 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19968 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19969 pri_tdm_rx_1_port_mixer_controls,
19970 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19971 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19972 pri_tdm_rx_2_port_mixer_controls,
19973 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19974 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19975 pri_tdm_rx_3_port_mixer_controls,
19976 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19977 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19978 sec_tdm_rx_0_port_mixer_controls,
19979 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19980 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19981 sec_tdm_rx_1_port_mixer_controls,
19982 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19983 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19984 sec_tdm_rx_2_port_mixer_controls,
19985 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19986 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19987 sec_tdm_rx_3_port_mixer_controls,
19988 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070019989 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
19990 sec_tdm_rx_7_port_mixer_controls,
19991 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019992 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19993 tert_tdm_rx_0_port_mixer_controls,
19994 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19995 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19996 tert_tdm_rx_1_port_mixer_controls,
19997 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19998 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19999 tert_tdm_rx_2_port_mixer_controls,
20000 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
20001 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20002 tert_tdm_rx_3_port_mixer_controls,
20003 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
20004 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20005 quat_tdm_rx_0_port_mixer_controls,
20006 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
20007 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
20008 quat_tdm_rx_1_port_mixer_controls,
20009 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
20010 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
20011 quat_tdm_rx_2_port_mixer_controls,
20012 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
20013 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20014 quat_tdm_rx_3_port_mixer_controls,
20015 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053020016 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20017 quin_tdm_rx_0_port_mixer_controls,
20018 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
20019 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
20020 quin_tdm_rx_1_port_mixer_controls,
20021 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
20022 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
20023 quin_tdm_rx_2_port_mixer_controls,
20024 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
20025 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20026 quin_tdm_rx_3_port_mixer_controls,
20027 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020028 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20029 int0_mi2s_rx_port_mixer_controls,
20030 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
20031 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20032 int4_mi2s_rx_port_mixer_controls,
20033 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053020034 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20035 wsa_cdc_dma_rx_0_port_mixer_controls,
20036 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
20037 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20038 rx_cdc_dma_rx_0_port_mixer_controls,
20039 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020040 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
20041 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
20042 ARRAY_SIZE(tx_qchat_mixer_controls)),
20043 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
20044 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
20045 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
20046 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
20047 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
20048 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020049 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
20050 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
20051 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070020052 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
20053 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
20054 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020055 /* lsm mixer definitions */
20056 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
20057 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
20058 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
20059 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
20060 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
20061 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
20062 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
20063 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
20064 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
20065 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
20066 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
20067 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
20068 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
20069 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
20070 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
20071 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
20072 /* Virtual Pins to force backends ON atm */
20073 SND_SOC_DAPM_OUTPUT("BE_OUT"),
20074 SND_SOC_DAPM_INPUT("BE_IN"),
20075
20076 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
20077 &slim0_rx_vi_fb_lch_mux),
20078 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
20079 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020080 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
20081 &wsa_rx_0_vi_fb_lch_mux),
20082 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
20083 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020084 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
20085 &mi2s_rx_vi_fb_mux),
20086 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
20087 &int4_mi2s_rx_vi_fb_mono_ch_mux),
20088 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
20089 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
20090
20091 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
20092 &voc_ext_ec_mux),
20093 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
20094 &ext_ec_ref_mux_ul1),
20095 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
20096 &ext_ec_ref_mux_ul2),
20097 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
20098 &ext_ec_ref_mux_ul3),
20099 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
20100 &ext_ec_ref_mux_ul4),
20101 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
20102 &ext_ec_ref_mux_ul5),
20103 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
20104 &ext_ec_ref_mux_ul6),
20105 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
20106 &ext_ec_ref_mux_ul8),
20107 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
20108 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053020109 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
20110 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053020111 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
20112 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020113 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
20114 &ext_ec_ref_mux_ul17),
20115 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
20116 &ext_ec_ref_mux_ul18),
20117 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
20118 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080020119 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
20120 &ext_ec_ref_mux_ul28),
20121 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
20122 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020123};
20124
20125static const struct snd_soc_dapm_route intercon[] = {
20126 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20127 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20128 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20129 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20130 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20131 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20132 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20133 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20134 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20135 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20136 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20137 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20138 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20139 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20140 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20141 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020142 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020143 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
20144
20145 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20146 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20147 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20148 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20149 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20150 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20151 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20152 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20153 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20154 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20155 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20156 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20157 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20158 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20159 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20160 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020161 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020162 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
20163
20164 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20165 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20166 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20167 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20168 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20169 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20170 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20171 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20172 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20173 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20174 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20175 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20176 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20177 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20178 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20179 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020180 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020181 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
20182
20183 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20184 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20185 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20186 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20187 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20188 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20189 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20190 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20191 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20192 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20193 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20194 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20195 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20196 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20197 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20198 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020199 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020200 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
20201
20202 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20203 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20204 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20205 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20206 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20207 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20208 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20209 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20210 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20211 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20212 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20213 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20214 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20215 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20216 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20217 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020218 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020219 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
20220
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020221 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20222 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20223 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20224 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20225 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20226 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20227 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20228 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20229 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20230 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20231 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20232 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20233 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20234 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20235 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20236 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020237 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020238 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
20239
20240 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20241 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20242 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20243 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20244 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20245 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20246 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20247 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20248 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20249 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20250 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20251 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20252 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20253 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20254 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20255 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020256 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020257 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
20258
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020259 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20260 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20261 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20262 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20263 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20264 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20265 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20266 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20267 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20268 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20269 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20270 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20271 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20272 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20273 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20274 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020275 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020276 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
20277
20278 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20279 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20280 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20281 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20282 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20283 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20284 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20285 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20286 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20287 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20288 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20289 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20290 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20291 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20292 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20293 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020294 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020295 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
20296
20297 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20298 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20299 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20300 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20301 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20302 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20303 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20304 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20305 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20306 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20307 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20308 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20309 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20310 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20311 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20312 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020313 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020314 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
20315
20316 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20317 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20318 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20319 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20320 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20321 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20322 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20323 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20324 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20325 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20326 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20327 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20328 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20329 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20330 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20331 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020332 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020333 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
20334
20335 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20336 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20337 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20338 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20339 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20340 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20341 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20342 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20343 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20344 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20345 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20346 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20347 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20348 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20349 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20350 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020351 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020352 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
20353
20354 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
20355 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
20356 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
20357 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
20358 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
20359 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
20360 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
20361 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
20362 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
20363 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
20364 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
20365 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
20366 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
20367 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
20368 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
20369 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020370 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020371 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
20372
20373 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
20374 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
20375 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
20376 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
20377 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
20378 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
20379 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
20380 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
20381 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
20382 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
20383 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
20384 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
20385 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
20386 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
20387 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
20388 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020389 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020390 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
20391
20392 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
20393 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
20394 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
20395 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
20396 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
20397 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
20398 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
20399 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
20400 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
20401 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
20402 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
20403 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
20404 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
20405 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
20406 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
20407 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020408 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020409 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
20410
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020411 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
20412 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
20413 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
20414 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
20415 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
20416 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
20417 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
20418 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
20419 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
20420 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
20421 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
20422 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
20423 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
20424 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
20425 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
20426 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020427 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020428 {"HDMI", NULL, "HDMI Mixer"},
20429
20430 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
20431 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
20432 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
20433 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
20434 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
20435 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
20436 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
20437 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
20438 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
20439 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
20440 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
20441 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
20442 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
20443 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
20444 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
20445 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020446 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020447 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
20448
Karthikeyan Mani57550082018-05-03 18:43:58 -070020449 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
20450 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
20451 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
20452 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
20453 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
20454 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
20455 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
20456 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
20457 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
20458 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
20459 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
20460 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
20461 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
20462 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
20463 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
20464 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020465 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070020466 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
20467
Ralf Herzc8701f72018-06-20 11:37:35 +020020468 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20469 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20470 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20471 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20472 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20473 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20474 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20475 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20476 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20477 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20478 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20479 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20480 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20481 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20482 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20483 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020484 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020485 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
20486
20487 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20488 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20489 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20490 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20491 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20492 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20493 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20494 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20495 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20496 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20497 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20498 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20499 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20500 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20501 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20502 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020503 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020504 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020505
20506 /* incall */
20507 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
20508 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
20509 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
20510 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
20511 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
20512 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20513 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20514 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20515 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20516 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
20517 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20518 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20519 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20520 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20521 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
20522
20523 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20524 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20525 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20526 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20527 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20528 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20529 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20530 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20531 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20532 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20533 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20534 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20535 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20536 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20537 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20538 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020539 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020540 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
20541
20542 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20543 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20544 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20545 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20546 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20547 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20548 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20549 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20550 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20551 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20552 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20553 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20554 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20555 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20556 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20557 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020558 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020559 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
20560
Surendar Karka3ef3d812018-09-28 18:52:35 +053020561 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20562 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20563 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20564 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20565 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20566 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20567 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20568 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20569 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20570 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20571 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20572 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20573 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20574 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20575 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20576 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20577 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
20578 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
20579
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020580 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20581 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20582 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20583 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20584 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20585 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20586 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20587 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20588 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20589 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20590 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20591 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20592 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20593 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20594 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20595 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020596 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020597 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
20598
20599 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20600 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20601 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20602 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20603 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20604 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20605 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
20606 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20607 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20608 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020609 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020610 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20611 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020612 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020613 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020614 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020615 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020616 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020617 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020618 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020619 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020620 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020621 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020622 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020623 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020624 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020625 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020626 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020627 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20628 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20629 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20630 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20631 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020632 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20633 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020634 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020635 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020636 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20637 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20638 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020639 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20640 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20641 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20642 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20643 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20644 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020645 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020646 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20647 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20648 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020649 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20650 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020651 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020652 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020653 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020654 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020655 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020656 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020657 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020658 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20659 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020660 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020661 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020662 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020663 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020664 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20665 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20666 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020667 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020668 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20669 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20670 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020671
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020672 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20673 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20674 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20675 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20676 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20677 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20678 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20679 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20680 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20681 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20682 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20683 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20684 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20685 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20686 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20687 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020688 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020689 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20690
20691 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20692 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20693 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20694 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20695 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20696 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20697 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20698 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20699 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20700 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20701 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20702 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20703 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20704 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20705 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020706 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020707 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20708
20709 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20710 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20711 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20712 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20713 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20714 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20715 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20716 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20717 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20718 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20719 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20720 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20721 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20722 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020723 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020724 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20725
20726 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20727 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20728 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20729 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20730 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20731 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20732 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20733 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20734 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20735 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20736 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20737 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20738 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20739 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020740 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020741 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20742
20743 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20744 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20745
20746 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20747 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20748
20749 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20750 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20751 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20752 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20753 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20754 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20755 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20756 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20757 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20758 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20759 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20760 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20761 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20762 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20763 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020764 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020765 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20766
20767 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20768 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20769 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20770 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20771 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20772 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20773 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20774 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20775 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20776 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20777 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20778 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20779 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20780 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20781 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20782 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20783
20784 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20785 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20786 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20787 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20788 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20789 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20790 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20791 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20792 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20793 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20794 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20795 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20796 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20797 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20798 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20799 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20800
20801 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20802 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20803 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20804 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20805 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20806 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20807 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20808 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20809 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20810 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20811 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20812 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20813 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20814 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20815 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20816 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20817 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20818 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20819
20820 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20821 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20822 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20823 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20824 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20825 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20826 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20827 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20828 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20829 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20830 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20831 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20832 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20833 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20834 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20835 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020836 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020837 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20838
20839 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20840 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20841 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20842 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20843 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20844 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20845 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20846 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20847 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20848 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20849 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20850 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20851 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20852 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20853 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20854 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020855 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020856 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20857
20858 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20859 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20860 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20861 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20862 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20863 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20864 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20865 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20866 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20867 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20868 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20869 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20870 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20871 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20872 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20873 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020874 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020875 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20876
20877 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20878 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20879 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20880 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20881 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20882 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20883 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20884 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20885 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20886 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20887 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20888 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20889 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20890 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20891 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20892 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020893 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020894 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20895
20896 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20897 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20898 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20899 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20900 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20901 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20902 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20903 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20904 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20905 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20906 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20907 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20908 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20909 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20910 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20911 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20912 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20913
20914 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20915 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20916 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20917 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20918 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20919 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20920 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20921 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20922 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20923 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20924 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20925 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20926 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20927 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20928 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20929 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020930 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020931 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20932
20933 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20934 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20935 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20936 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20937 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20938 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20939 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20940 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20941 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20942 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20943 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20944 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20945 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20946 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20947 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20948 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020949 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020950 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20951
20952 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20953 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20954 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20955 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20956 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20957 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20958 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20959 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20960 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20961 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20962 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20963 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20964 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20965 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20966 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20967 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020968 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020969 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20970
20971 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20972 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20973 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20974 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20975 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20976 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20977 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20978 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20979 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20980 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20981 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20982 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20983 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20984 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20985 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20986 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020987 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020988 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20989
20990 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20991 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20992 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20993 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20994 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20995 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20996 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20997 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20998 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20999 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21000 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21001 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21002 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21003 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21004 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21005 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21006 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
21007
21008 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21009 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21010 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21011 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21012 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21013 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21014 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21015 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21016 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21017 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21018 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21019 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21020 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21021 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21022 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21023 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021024 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021025 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
21026
21027 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21028 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21029 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21030 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21031 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21032 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21033 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21034 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21035 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21036 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21037 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21038 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21039 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21040 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21041 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21042 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21043 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
21044
21045 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21046 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21047 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21048 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21049 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21050 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21051 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21052 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21053 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21054 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21055 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21056 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21057 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21058 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21059 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21060 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021061 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021062 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
21063
21064 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21065 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21066 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21067 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21068 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21069 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21070 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21071 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21072 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21073 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21074 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21075 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21076 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21077 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21078 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21079 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021080 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021081 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
21082
21083 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21084 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21085 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21086 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21087 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21088 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21089 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21090 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21091 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21092 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21093 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21094 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21095 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21096 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21097 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21098 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021099 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021100 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
21101
21102 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
21103 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
21104 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
21105 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
21106 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
21107 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
21108 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
21109 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
21110 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
21111 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
21112 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
21113 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
21114 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
21115 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
21116 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
21117 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021118 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021119 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
21120
21121 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21122 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21123 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21124 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21125 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21126 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21127 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21128 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21129 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21130 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21131 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21132 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21133 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21134 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21135 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21136 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21137 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021138 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021139 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
21140
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021141 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21142 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21143 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21144 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21145 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21146 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21147 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21148 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21149 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21150 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21151 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21152 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21153 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21154 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21155 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21156 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21157 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
21158
21159 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21160 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21161 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21162 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21163 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21164 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21165 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21166 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21167 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21168 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21169 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21170 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21171 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21172 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21173 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21174 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21175 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021176 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021177 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
21178
21179 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21180 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21181 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21182 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21183 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21184 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21185 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21186 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21187 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21188 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21189 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21190 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21191 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21192 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21193 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21194 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21195 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021196 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021197 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
21198
21199 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21200 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21201 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21202 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21203 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21204 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21205 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21206 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21207 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21208 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21209 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21210 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21211 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21212 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21213 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21214 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21215 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021216 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021217 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
21218
Rohit Kumara5077932017-09-10 22:05:05 +053021219 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21220 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21221 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21222 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21223 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21224 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21225 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21226 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21227 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21228 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21229 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21230 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21231 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21232 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21233 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21234 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21235 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021236 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021237 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
21238
21239 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21240 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21241 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21242 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21243 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21244 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21245 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21246 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21247 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21248 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21249 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21250 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21251 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21252 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21253 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21254 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21255 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
21256
21257 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21258 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21259 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21260 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21261 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21262 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21263 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21264 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21265 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21266 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21267 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21268 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21269 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21270 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21271 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21272 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21273 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021274 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021275 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
21276
21277 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21278 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21279 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21280 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21281 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21282 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21283 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21284 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21285 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21286 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21287 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21288 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21289 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21290 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21291 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21292 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21293 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021294 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021295 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
21296
21297 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21298 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21299 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21300 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21301 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21302 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21303 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21304 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21305 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21306 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21307 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21308 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21309 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21310 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21311 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21312 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21313 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021314 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021315 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
21316
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021317 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
21318 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
21319 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
21320 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
21321 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021322 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021323 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021324 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21325 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21326 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21327 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21328 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21329 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21330 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21331 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21332 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21333 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21334 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21335 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021336 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021337 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21338 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21339 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021340 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021341 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21342 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
21343 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021344 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021345 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21346 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021347 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21348 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
21349 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021350 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021351 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21352 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
21353 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021354 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021355 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021356 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
21357 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
21358 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021359 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21360 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21361 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21362 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21363 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21364 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21365 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21366 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021367 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021368 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21369 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21370 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021371 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021372 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21373 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21374 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021375 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021376 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021377 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21378 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21379 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021380 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021381 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021382 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21383 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21384 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21385 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21386 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021387 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21388 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21389 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21390 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021391 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021392
21393 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21394 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21395 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21396 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21397 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21398 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21399 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21400 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21401 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21402 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21403 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21404 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21405 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21406 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21407 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21408 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021409 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021410 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21411 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21412 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21413 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021414 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21415 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21416 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21417 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21418 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021419 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021420 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21421 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21422 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21423 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21424 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21425 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021426 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21427 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021428
21429 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21430 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21431 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21432 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21433 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21434 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21435 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21436 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21437 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21438 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21439 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21440 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21441 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21442 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21443 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21444 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021445 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021446 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21447 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21448 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21449 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021450 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21451 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21452 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21453 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21454 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021455 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021456 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21457 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21458 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21459 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21460 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21461 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021462 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21463 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021464
21465 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21466 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21467 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21468 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21469 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21470 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21471 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21472 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21473 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21474 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21475 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21476 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21477 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21478 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21479 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21480 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021481 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021482 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21483 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21484 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21485 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021486 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21487 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21488 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21489 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21490 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021491 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021492 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21493 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21494 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21495 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21496 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21497 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021498 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21499 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021500
21501 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21502 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21503 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21504 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21505 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21506 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21507 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21508 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21509 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21510 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21511 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21512 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21513 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21514 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21515 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21516 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021517 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021518 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21519 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21520 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21521 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021522 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21523 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21524 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21525 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21526 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021527 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021528 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21529 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21530 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21531 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21532 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21533 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021534 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21535 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021536
21537 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21538 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21539 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21540 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21541 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21542 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21543 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21544 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21545 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21546 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21547 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21548 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21549 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21550 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21551 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21552 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021553 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021554 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21555 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21556 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21557 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021558 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21559 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21560 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21561 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21562 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021563 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021564 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21565 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21566 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21567 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21568 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21569 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021570 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21571 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021572
21573 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21574 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21575 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21576 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21577 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21578 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21579 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21580 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21581 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21582 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21583 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21584 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21585 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21586 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21587 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21588 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021589 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021590 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21591 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21592 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21593 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021594 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21595 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21596 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21597 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21598 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021599 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021600 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21601 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21602 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21603 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21604 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21605 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021606 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21607 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021608
21609 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21610 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21611 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21612 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21613 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21614 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21615 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21616 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21617 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21618 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21619 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21620 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21621 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21622 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21623 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21624 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021625 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021626 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21627 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21628 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21629 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021630 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21631 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21632 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21633 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21634 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021635 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021636 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21637 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21638 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21639 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21640 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21641 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021642 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21643 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021644
Samyak Jain810e42a2019-01-07 17:53:34 +053021645 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021646 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21647 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21648 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21649 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21650 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21651 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21652 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21653 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021654 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21655 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21656 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21657 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021658 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21659 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21660 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21661 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21662 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021663 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021664 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21665 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21666 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21667 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21668 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21669 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021670 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21671 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021672 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021673
Laxminath Kasam38070be2017-08-17 18:21:59 +053021674 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21675 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21676 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21677 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21678 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21679 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21680 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21681 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021682 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21683 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21684 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21685 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21686 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21687 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021688 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021689
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021690 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21691 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21692 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21693 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021694 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021695 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21696 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21697 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21698 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21699 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21700 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21701 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21702 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21703 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21704 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21705 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21706 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21707 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21708 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21709 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21710 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021711 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21712 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21713 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21714 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021715 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21716 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21717 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21718 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21719 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021720 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021721 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21722 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21723 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21724 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21725 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21726 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021727 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21728 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021729 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021730
Derek Chen07c6d1c2018-07-05 10:39:25 -070021731 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21732 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21733 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21734 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21735 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21736 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21737 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21738 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21739 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21740 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21741 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21742 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21743 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21744 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21745 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21746 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21747 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21748 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21749 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21750 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21751 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21752 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021753 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21754 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21755 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21756 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21757 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021758 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021759 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21760 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21761 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21762 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21763 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21764 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21765 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21766 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021767 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021768
Surendar Karkac1cde372018-08-14 18:56:24 +053021769 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021770 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021771 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21772 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021773 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021774 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21775 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21776 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21777 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21778 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21779 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21780 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021781 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021782
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021783 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21784 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21785 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21786 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21787 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21788 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021789 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021790
Asish Bhattacharya34504582017-08-08 12:55:01 +053021791 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21792 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21793 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21794 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21795 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21796 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21797 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21798 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21799 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21800 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21801 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21802 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21803 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21804 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21805 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21806 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21807 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021808 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21809 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21810 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21811 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21812 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021813 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021814 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21815 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21816 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21817 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21818 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21819 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021820 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21821 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021822 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021823
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021824 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21825 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21826 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21827 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21828 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21829 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021830 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021831
21832 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21833 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21834 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21835 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21836 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21837 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021838 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021839
21840 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21841 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21842 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21843 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21844 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21845 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021846 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021847
21848 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21849 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21850 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21851 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21852 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21853 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021854 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021855
21856 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21857 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21858 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21859 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21860 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21861 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021862 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021863
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021864 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21865 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21866 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21867 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21868 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21869 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21870 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21871 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21872 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21873 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21874 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21875 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21876 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21877 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21878 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21879 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21880 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21881 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21882
21883 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21884 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21885 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21886 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21887 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21888 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21889 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21890 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21891 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21892 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21893 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21894 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21895 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21896 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21897 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21898 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21899 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21900 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21901
21902 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21903 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21904 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21905 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21906 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21907 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21908 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21909 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21910 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21911 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21912 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21913 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21914 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21915 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21916 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21917 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21918 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21919
21920 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21921 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21922 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21923 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21924 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21925 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21926 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21927 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21928 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21929 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21930 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21931 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21932 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21933 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21934 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21935 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21936 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21937
21938 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21939 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21940 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021941 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021942 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21943 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21944 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021945 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21946 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021947 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21948 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021949 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021950 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21951 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021952 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021953 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21954 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21955 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021956 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21957 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021958 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21959 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21960 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21961
21962 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21963 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21964 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021965 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021966 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21967 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21968 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021969 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21970 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021971 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21972 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021973 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021974 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21975 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21976 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21977 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21978 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21979 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21980 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21981 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21982 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021983 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021984 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021985 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21986 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21987 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21988 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021989 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021990 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021991 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21992 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021993
21994 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21995 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21996 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21997 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21998 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21999 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22000 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22001 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22002 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22003 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22004 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22005 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22006 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22007 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22008 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22009 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070022010 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022011 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
22012
22013 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22014 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22015 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22016 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22017 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22018 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22019 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22020 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22021 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22022 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22023 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22024 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22025 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22026 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22027 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22028 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070022029 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022030 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
22031
22032 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22033 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22034 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22035 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22036 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22037 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22038 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22039 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22040 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22041 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22042 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22043 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22044 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22045 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22046 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22047 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22048 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
22049
22050 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22051 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22052 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22053 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22054 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22055 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22056 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22057 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22058 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22059 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22060 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22061 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22062 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22063 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22064 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22065 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22066 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
22067
Rohit Kumara5077932017-09-10 22:05:05 +053022068 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22069 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22070 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22071 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22072 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22073 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22074 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22075 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22076 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22077 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22078 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22079 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22080 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22081 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22082 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22083 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22084 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
22085
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022086 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
22087 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22088 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22089 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22090 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22091 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
22092
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022093 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
22094 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22095 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22096 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
22097
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022098 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22099 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22100 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22101 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22102 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22103 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
22104
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022105 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
22106 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022107 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22108 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22109 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22110 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
22111
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022112 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
22113 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022114 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22115 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22116 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22117 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
22118
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022119 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22120 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022121 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22122 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22123 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22124 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
22125
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022126 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
22127 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022128 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22129 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22130 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22131 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
22132
Karthikeyan Mani57550082018-05-03 18:43:58 -070022133 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
22134 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22135 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
22136 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22137 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22138 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
22139
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022140 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22141 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22142 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22143 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22144 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022145 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
22146
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022147 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22148 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22149 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22150 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22151 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22152 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
22153
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022154 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22155 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022156 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22157 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22158 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22159 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
22160
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022161 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22162 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022163 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22164 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22165 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22166 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
22167
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022168 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22169 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022170 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22171 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22172 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22173 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
22174
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022175 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22176 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022177 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22178 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22179 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22180 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
22181
Rohit Kumara5077932017-09-10 22:05:05 +053022182 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22183 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022184 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22185 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22186 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22187 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
22188
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022189 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
22190 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22191 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22192 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22193 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22194 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
22195 {"HDMI", NULL, "HDMI_DL_HL"},
22196
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022197 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022198 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22199 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22200 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080022201 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022202 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
22203
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022204 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022205 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22206 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22207 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22208 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22209 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
22210
22211 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22212 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22213 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22214 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22215 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22216 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
22217
22218 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22219 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22220 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22221 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22222 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22223 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
22224
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022225 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022226 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22227 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22228 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22229 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22230 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
22231
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022232 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022233 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22234 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22235 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22236 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
22237
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022238 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022239 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22240 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22241 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22242 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
22243
22244 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22245 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
22246
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022247 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22248 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22249 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
22250
22251 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22252 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22253 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
22254
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022255 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22256 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22257 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22258 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022259 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022260 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070022261 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022262 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022263 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
22264 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
22265
22266 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22267 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22268 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22269 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22270 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22271 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22272 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22273 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22274 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22275 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022276 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22277 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022278
22279 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22280 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22281 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22282 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22283
22284 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22285 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22286 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22287 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22288
22289 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22290 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22291 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22292 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22293
22294 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22295 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22296 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22297 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22298
22299 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22300 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22301 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22302 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22303
22304 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22305 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22306 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22307 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22308
22309 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22310 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22311 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22312 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22313
Laxminath Kasam38070be2017-08-17 18:21:59 +053022314 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22315 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22316 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22317 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22318 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22319 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22320 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22321 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22322 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22323 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022324 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22325 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070022326
22327 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22328 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22329 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22330 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22331
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022332 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22333 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22334 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22335 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22336
22337 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22338 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22339 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22340 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22341
22342 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22343 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22344 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22345 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22346
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022347 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22348 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22349 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22350 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22351
22352 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22353 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22354 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22355 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080022356
22357 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22358 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22359 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22360 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22361 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22362 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22363 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22364 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22365
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022366 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
22367 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
22368 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
22369 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
22370 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
22371 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
22372 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
22373 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022374 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022375 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022376 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
22377 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
22378 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022379 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
22380 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022381
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022382 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
22383 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
22384 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
22385 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
22386 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
22387 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
22388 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
22389 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
22390 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
22391 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
22392 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
22393 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
22394 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
22395 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
22396 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022397 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022398 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022399 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
22400 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
22401 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
22402 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
22403 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
22404 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022405 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
22406
22407 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
22408 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
22409 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
22410 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
22411 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
22412 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
22413 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
22414 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
22415 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
22416 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
22417 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
22418 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
22419 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
22420 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
22421 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022422 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022423 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
22424 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
22425 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
22426 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
22427 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
22428 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022429 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
22430
22431 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
22432 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
22433 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
22434 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
22435 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
22436 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
22437 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
22438 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
22439 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
22440 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
22441 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
22442 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
22443 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
22444 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022445 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022446 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
22447 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
22448
22449 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
22450 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
22451 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
22452 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
22453 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
22454 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
22455 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
22456 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
22457 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
22458 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080022459 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
22460 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022461 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
22462 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
22463 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
22464 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
22465 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022466 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22467 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
22468 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022469 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22470 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
22471 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022472 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22473 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22474 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22475 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22476 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22477 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22478 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22479 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022480 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22481 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022482 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022483 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022484 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022485 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
22486
22487 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22488 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22489 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22490 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22491 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22492 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22493 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22494 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022495 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22496 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022497 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022498 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022499 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022500 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
22501
22502
22503 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22504 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22505 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22506 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22507 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22508 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22509 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22510 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022511 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22512 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022513 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022514 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022515 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022516 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
22517
22518
22519 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22520 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22521 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22522 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22523 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22524 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22525 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22526 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022527 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22528 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022529 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022530 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022531 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022532 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
22533
22534 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22535 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22536 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22537 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22538 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22539 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22540 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22541 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022542 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22543 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022544 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022545 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022546 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022547 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
22548
22549 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22550 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22551 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22552 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22553 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22554 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022555 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22556 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022557 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022558 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022559 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022560 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
22561
22562 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22563 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22564 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22565 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22566 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22567 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022568 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22569 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022570 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022571 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022572 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022573 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
22574
22575 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22576 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22577 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22578 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22579 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22580 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022581 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22582 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022583 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022584 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022585 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022586 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
22587
22588
22589 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
22590 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
22591 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
22592 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
22593 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
22594 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
22595 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
22596 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
22597 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
22598 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
22599 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022600 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022601 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
22602 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
22603 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
22604 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
22605 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
22606 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
22607
22608 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
22609 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
22610 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
22611 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
22612 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
22613 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
22614 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
22615 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
22616 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
22617 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
22618 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
22619 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080022620 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
22621 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022622 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022623 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022624 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022625 {"MI2S_RX", NULL, "MI2S_DL_HL"},
22626 {"MI2S_UL_HL", NULL, "MI2S_TX"},
22627 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
22628 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
22629
22630 /* connect to INT4_MI2S_DL_HL since same pcm_id */
22631 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22632 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
22633 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22634 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
22635 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
22636 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
22637 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
22638 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
22639 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
22640 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
22641
22642 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
22643 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022644 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
22645 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022646 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22647 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
22648 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22649 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
22650 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
22651 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
22652 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
22653 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
22654 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
22655 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
22656
22657 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
22658 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
22659 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
22660 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
22661 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
22662 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
22663 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
22664 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
22665 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
22666 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
22667 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
22668 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
22669 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
22670 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
22671 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
22672 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022673 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022674 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
22675 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
22676 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
22677 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022678 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022679 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
22680 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
22681 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
22682 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
22683 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
22684 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
22685 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
22686 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
22687 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
22688 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
22689 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
22690 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022691 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
22692 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
22693 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
22694 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
22695 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
22696 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
22697 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
22698 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022699
22700 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22701 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22702 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22703 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22704 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22705 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22706 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22707 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22708 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22709 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22710 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22711 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22712 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22713 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22714 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22715 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022716 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22717 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22718 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22719 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022720 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
22721
22722 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22723 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22724 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22725 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22726 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22727 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22728 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22729 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22730 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22731 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22732 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22733 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22734 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22735 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22736 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22737 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022738 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22739 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22740 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22741 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022742 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
22743
22744 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22745 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22746 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22747 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22748 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22749 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22750 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22751 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22752 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22753 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22754 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22755 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22756 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22757 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22758 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22759 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022760 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22761 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22762 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22763 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022764 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22765
22766 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22767 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22768 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22769 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22770 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22771 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22772 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22773 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22774 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22775 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22776 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22777 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22778 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22779 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22780 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22781 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022782 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22783 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22784 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22785 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022786 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22787
22788 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22789 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22790 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22791 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22792 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22793 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22794 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22795 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22796 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22797 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22798 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22799 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22800 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22801 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22802 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22803 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022804 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22805 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22806 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22807 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022808 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22809
22810 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22811 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22812 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22813 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22814 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22815 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22816 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22817 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22818 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22819 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22820 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22821 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22822 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22823 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22824 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22825 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022826 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22827 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22828 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22829 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022830 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22831
22832 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22833 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22834 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22835 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22836 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22837 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22838 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22839 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22840 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22841 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22842 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22843 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22844 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22845 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22846 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22847 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022848 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22849 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22850 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22851 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022852 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22853
22854 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22855 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22856 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22857 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22858 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22859 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22860 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22861 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22862 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22863 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22864 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22865 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22866 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22867 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22868 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22869 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022870 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22871 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22872 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22873 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022874 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22875
Derek Chenfdcc0982018-10-02 15:14:03 -070022876 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
22877 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
22878
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022879 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22880 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22881 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22882 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22883 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22884 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22885 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22886 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22887 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22888 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22889 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22890 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22891 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22892 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22893 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22894 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022895 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22896 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22897 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22898 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022899 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22900
22901 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22902 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22903 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22904 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22905 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22906 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22907 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22908 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22909 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22910 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22911 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22912 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22913 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22914 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22915 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22916 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022917 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22918 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22919 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22920 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022921 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22922
22923 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22924 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22925 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22926 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22927 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22928 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22929 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22930 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22931 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22932 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22933 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22934 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22935 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22936 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22937 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22938 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022939 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22940 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22941 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22942 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022943 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22944
22945 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22946 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22947 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22948 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22949 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22950 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22951 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22952 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22953 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22954 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22955 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22956 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22957 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22958 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22959 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22960 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022961 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22962 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22963 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22964 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022965 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22966
22967 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22968 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22969 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22970 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22971 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22972 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22973 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22974 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22975 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22976 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22977 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22978 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22979 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22980 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22981 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22982 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022983 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22984 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22985 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22986 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022987 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22988
22989 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22990 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22991 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22992 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22993 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22994 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22995 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22996 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22997 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22998 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22999 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23000 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23001 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23002 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23003 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23004 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023005 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23006 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23007 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23008 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023009 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
23010
23011 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23012 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23013 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23014 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23015 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23016 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23017 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23018 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23019 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23020 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23021 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23022 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23023 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23024 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23025 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23026 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023027 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23028 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23029 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23030 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023031 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
23032
23033 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23034 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23035 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23036 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23037 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23038 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23039 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23040 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23041 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23042 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23043 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23044 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23045 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23046 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23047 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23048 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023049 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23050 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23051 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23052 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023053 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
23054
Rohit Kumara5077932017-09-10 22:05:05 +053023055 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23056 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23057 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23058 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23059 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23060 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23061 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23062 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23063 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23064 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23065 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23066 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23067 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23068 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23069 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23070 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23071 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23072 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23073 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23074 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023075 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023076
23077 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23078 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23079 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23080 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23081 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23082 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23083 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23084 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23085 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23086 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23087 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23088 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23089 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23090 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23091 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23092 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23093 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23094 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23095 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23096 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023097 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023098
23099 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23100 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23101 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23102 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23103 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23104 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23105 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23106 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23107 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23108 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23109 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23110 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23111 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23112 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23113 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23114 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23115 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23116 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23117 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23118 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023119 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023120
23121 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23122 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23123 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23124 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23125 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23126 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23127 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23128 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23129 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23130 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23131 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23132 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23133 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23134 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23135 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23136 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23137 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23138 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23139 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23140 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023141 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023142
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023143 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23144 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23145 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23146 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023147 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023148 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23149 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23150 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23151 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023152 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023153 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23154 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
23155
23156 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23157 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23158 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23159 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023160 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023161 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23162 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23163 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023164 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023165 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23166 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23167 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
23168
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023169 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
23170 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080023171 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023172 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023173 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
23174
23175 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
23176 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023177 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023178 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023179
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023180 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23181 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23182 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23183 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23184 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023185 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023186 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23187 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23188 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23189 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023190 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023191 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23192 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23193 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23194 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23195 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023196 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023197 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23198 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
23199 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23200 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23201 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
23202 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
23203 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
23204 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
23205 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
23206 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
23207
23208
23209 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23210 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23211 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23212 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23213 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023214 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023215 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
23216
23217 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23218 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23219 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023220 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023221 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
23222
23223 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23224 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23225 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23226 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
23227
23228 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23229 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
23230 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23231 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
23232
Rohit Kumara5077932017-09-10 22:05:05 +053023233 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23234 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
23235 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23236 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
23237
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023238 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23239 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23240 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23241 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23242 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23243 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23244 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23245 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023246 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023247 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
23248 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23249 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23250 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23251 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23252 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23253 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23254 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23255 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23256 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23257 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
23258
23259 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23260 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23261 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23262 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23263 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23264 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23265 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23266 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23267 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23268 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23269 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23270 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
23271
23272 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23273 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23274 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23275 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23276 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23277 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23278 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23279 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23280 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23281 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23282 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23283 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
23284
kunleizdf5a00a2017-11-27 15:27:36 +080023285 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23286 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023287 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023288
23289 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23290 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023291 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023292
23293 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23294 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023295 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
23296
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023297 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
23298 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023299 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23300 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23301 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23302 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
23303
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023304 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
23305 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023306 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23307 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23308 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23309 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
23310
23311 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23312 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23313 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23314 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
23315 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23316 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23317 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
23318 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
23319 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23320 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
23321 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
23322 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
23323 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
23324
23325 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23326 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23327 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23328 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23329 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023330 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023331 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23332 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23333 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23334 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23335 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23336 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23337 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23338 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
23339
23340 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23341 {"HDMI", NULL, "HDMI_RX Port Mixer"},
23342
23343 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23344 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
23345
Karthikeyan Mani57550082018-05-03 18:43:58 -070023346 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
23347 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
23348
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023349 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23350 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
23351
23352 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23353 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23354 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
23355
23356 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23357 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23358 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23359 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023360 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023361 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23362 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23363 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23364 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023365 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023366 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
23367
23368 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23369 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23370 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23371 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023372 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023373 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23374 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23375 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023376 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023377 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
23378
23379 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23380 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23381 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23382 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023383 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023384 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23385 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23386 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
23387
23388 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23389 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23390 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23391 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023392 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023393 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23394 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23395 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23396 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23397 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
23398
Rohit Kumara5077932017-09-10 22:05:05 +053023399 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23400 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23401 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23402 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23403 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
23404 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23405 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23406 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
23407
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023408 /* Backend Enablement */
23409
23410 {"BE_OUT", NULL, "PRI_I2S_RX"},
23411 {"BE_OUT", NULL, "SEC_I2S_RX"},
23412 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
23413 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
23414 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
23415 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23416 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
23417 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
23418 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
23419 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
23420 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023421 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023422 {"BE_OUT", NULL, "USB_AUDIO_RX"},
23423 {"BE_OUT", NULL, "HDMI"},
23424 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070023425 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023426 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
23427 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023428 {"BE_OUT", NULL, "MI2S_RX"},
23429 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
23430 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
23431 {"BE_OUT", NULL, "TERT_MI2S_RX"},
23432 {"BE_OUT", NULL, "SEC_MI2S_RX"},
23433 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
23434 {"BE_OUT", NULL, "PRI_MI2S_RX"},
23435 {"BE_OUT", NULL, "INT0_MI2S_RX"},
23436 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023437 {"BE_OUT", NULL, "INT2_MI2S_RX"},
23438 {"BE_OUT", NULL, "INT3_MI2S_RX"},
23439 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023440 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23441 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
23442 {"BE_OUT", NULL, "INT_FM_RX"},
23443 {"BE_OUT", NULL, "PCM_RX"},
23444 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23445 {"BE_OUT", NULL, "AUX_PCM_RX"},
23446 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
23447 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
23448 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023449 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023450 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23451 {"BE_OUT", NULL, "INT_FM_RX"},
23452 {"BE_OUT", NULL, "PCM_RX"},
23453 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23454 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
23455 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
23456 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
23457 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
23458 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
23459 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
23460 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
23461 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
23462 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
23463 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023464 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023465 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
23466 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
23467 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
23468 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
23469 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
23470 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
23471 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
23472 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
23473 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023474 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
23475 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
23476 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
23477 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023478 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
23479 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023480 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
23481 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
23482 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
23483 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
23484 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
23485 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
23486 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
23487 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023488
23489 {"PRI_I2S_TX", NULL, "BE_IN"},
23490 {"MI2S_TX", NULL, "BE_IN"},
23491 {"QUAT_MI2S_TX", NULL, "BE_IN"},
23492 {"QUIN_MI2S_TX", NULL, "BE_IN"},
23493 {"PRI_MI2S_TX", NULL, "BE_IN"},
23494 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023495 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023496 {"INT2_MI2S_TX", NULL, "BE_IN"},
23497 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023498 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023499 {"INT5_MI2S_TX", NULL, "BE_IN"},
23500 {"SEC_MI2S_TX", NULL, "BE_IN"},
23501 {"SENARY_MI2S_TX", NULL, "BE_IN" },
23502 {"SLIMBUS_0_TX", NULL, "BE_IN" },
23503 {"SLIMBUS_1_TX", NULL, "BE_IN" },
23504 {"SLIMBUS_3_TX", NULL, "BE_IN" },
23505 {"SLIMBUS_4_TX", NULL, "BE_IN" },
23506 {"SLIMBUS_5_TX", NULL, "BE_IN" },
23507 {"SLIMBUS_6_TX", NULL, "BE_IN" },
23508 {"SLIMBUS_7_TX", NULL, "BE_IN" },
23509 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053023510 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023511 {"USB_AUDIO_TX", NULL, "BE_IN" },
23512 {"INT_BT_SCO_TX", NULL, "BE_IN"},
23513 {"INT_FM_TX", NULL, "BE_IN"},
23514 {"PCM_TX", NULL, "BE_IN"},
23515 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23516 {"BE_OUT", NULL, "STUB_RX"},
23517 {"STUB_TX", NULL, "BE_IN"},
23518 {"STUB_1_TX", NULL, "BE_IN"},
23519 {"BE_OUT", NULL, "AUX_PCM_RX"},
23520 {"AUX_PCM_TX", NULL, "BE_IN"},
23521 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
23522 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
23523 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023524 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023525 {"INCALL_RECORD_TX", NULL, "BE_IN"},
23526 {"INCALL_RECORD_RX", NULL, "BE_IN"},
23527 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
23528 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023529 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
23530 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023531 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
23532 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23533 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23534 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
23535 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023536 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
23537 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023538 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
23539 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
23540 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
23541 {"PRI_TDM_TX_0", NULL, "BE_IN"},
23542 {"PRI_TDM_TX_1", NULL, "BE_IN"},
23543 {"PRI_TDM_TX_2", NULL, "BE_IN"},
23544 {"PRI_TDM_TX_3", NULL, "BE_IN"},
23545 {"SEC_TDM_TX_0", NULL, "BE_IN"},
23546 {"SEC_TDM_TX_1", NULL, "BE_IN"},
23547 {"SEC_TDM_TX_2", NULL, "BE_IN"},
23548 {"SEC_TDM_TX_3", NULL, "BE_IN"},
23549 {"TERT_TDM_TX_0", NULL, "BE_IN"},
23550 {"TERT_TDM_TX_1", NULL, "BE_IN"},
23551 {"TERT_TDM_TX_2", NULL, "BE_IN"},
23552 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023553 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023554 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
23555 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
23556 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
23557 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053023558 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023559 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
23560 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
23561 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
23562 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023563 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
23564 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
23565 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
23566 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
23567 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023568 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023569 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
23570 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
23571 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
23572 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
23573 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
23574 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023575 {"PRI_SPDIF_TX", NULL, "BE_IN"},
23576 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023577};
23578
23579static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
23580 struct snd_pcm_hw_params *params)
23581{
23582 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23583 unsigned int be_id = rtd->dai_link->id;
23584
23585 if (be_id >= MSM_BACKEND_DAI_MAX) {
23586 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23587 return -EINVAL;
23588 }
23589
23590 mutex_lock(&routing_lock);
23591 msm_bedais[be_id].sample_rate = params_rate(params);
23592 msm_bedais[be_id].channel = params_channels(params);
23593 msm_bedais[be_id].format = params_format(params);
23594 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
23595 __func__, msm_bedais[be_id].sample_rate,
23596 msm_bedais[be_id].format, be_id);
23597 mutex_unlock(&routing_lock);
23598 return 0;
23599}
23600
23601static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
23602{
23603 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23604 unsigned int be_id = rtd->dai_link->id;
23605 int i, session_type, path_type, topology;
23606 struct msm_pcm_routing_bdai_data *bedai;
23607 struct msm_pcm_routing_fdai_data *fdai;
23608
23609 pr_debug("%s: substream->pcm->id:%s\n",
23610 __func__, substream->pcm->id);
23611
23612 if (be_id >= MSM_BACKEND_DAI_MAX) {
23613 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23614 return -EINVAL;
23615 }
23616
23617 bedai = &msm_bedais[be_id];
23618 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
23619 0 : 1);
23620 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23621 path_type = ADM_PATH_PLAYBACK;
23622 else
23623 path_type = ADM_PATH_LIVE_REC;
23624
23625 mutex_lock(&routing_lock);
23626 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23627 if (!is_mm_lsm_fe_id(i))
23628 continue;
23629 fdai = &fe_dai_map[i][session_type];
23630 if (fdai->strm_id != INVALID_SESSION) {
23631 int idx;
23632 int port_id;
23633 unsigned long copp =
23634 session_copp_map[i][session_type][be_id];
23635 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
23636 if (test_bit(idx, &copp))
23637 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070023638
23639 if (idx >= MAX_COPPS_PER_PORT) {
23640 pr_debug("%s: copp idx is invalid, exiting\n",
23641 __func__);
23642 continue;
23643 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023644 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053023645 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023646 topology = adm_get_topology_for_port_copp_idx(port_id,
23647 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023648 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053023649 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023650 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
23651 __func__, copp, i, session_type, be_id,
23652 topology);
23653 clear_bit(idx,
23654 &session_copp_map[i][session_type][be_id]);
23655 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023656 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023657 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023658 topology);
23659 }
23660 }
23661
23662 bedai->active = 0;
23663 bedai->sample_rate = 0;
23664 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023665 mutex_unlock(&routing_lock);
23666
23667 return 0;
23668}
23669
23670static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
23671{
23672 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23673 unsigned int be_id = rtd->dai_link->id;
23674 int i, path_type, topology;
23675 int session_type = INVALID_SESSION;
23676 struct msm_pcm_routing_bdai_data *bedai;
23677 u32 channels, sample_rate;
23678 uint16_t bits_per_sample = 16, voc_path_type;
23679 struct msm_pcm_routing_fdai_data *fdai;
23680 u32 session_id;
23681 struct media_format_info voc_be_media_format;
23682 bool is_lsm;
23683
23684 pr_debug("%s: substream->pcm->id:%s\n",
23685 __func__, substream->pcm->id);
23686
23687 if (be_id >= MSM_BACKEND_DAI_MAX) {
23688 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23689 return -EINVAL;
23690 }
23691
23692 bedai = &msm_bedais[be_id];
23693
23694 mutex_lock(&routing_lock);
23695 if (bedai->active == 1)
23696 goto done; /* Ignore prepare if back-end already active */
23697
23698 /* AFE port is not active at this point. However, still
23699 * go ahead setting active flag under the notion that
23700 * QDSP6 is able to handle ADM starting before AFE port
23701 * is started.
23702 */
23703 bedai->active = 1;
23704
23705 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23706 if (!(is_mm_lsm_fe_id(i) &&
23707 route_check_fe_id_adm_support(i)))
23708 continue;
23709
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023710 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
23711 SESSION_TYPE_RX : SESSION_TYPE_TX;
23712 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023713 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023714 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023715 path_type = ADM_PATH_COMPRESSED_RX;
23716 else
23717 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023718 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023719 if ((fdai->passthr_mode != LEGACY_PCM) &&
23720 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020023721 path_type = ADM_PATH_COMPRESSED_TX;
23722 else
23723 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023724 }
23725
23726 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
23727 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023728 if (fdai->strm_id != INVALID_SESSION) {
23729 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053023730 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023731
23732 if (session_type == SESSION_TYPE_TX &&
23733 fdai->be_srate &&
23734 (fdai->be_srate != bedai->sample_rate)) {
23735 pr_debug("%s: flush strm %d diff BE rates\n",
23736 __func__,
23737 fdai->strm_id);
23738
23739 if (fdai->event_info.event_func)
23740 fdai->event_info.event_func(
23741 MSM_PCM_RT_EVT_BUF_RECFG,
23742 fdai->event_info.priv_data);
23743 fdai->be_srate = 0; /* might not need it */
23744 }
23745 bits_per_sample = msm_routing_get_bit_width(
23746 bedai->format);
23747
23748 app_type =
23749 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
23750 if (app_type && is_lsm) {
23751 app_type_idx =
23752 msm_pcm_routing_get_lsm_app_type_idx(app_type);
23753 sample_rate =
23754 fe_dai_app_type_cfg[i][session_type][be_id]
23755 .sample_rate;
23756 bits_per_sample =
23757 lsm_app_type_cfg[app_type_idx].bit_width;
23758 } else if (app_type) {
23759 app_type_idx =
23760 msm_pcm_routing_get_app_type_idx(app_type);
23761 sample_rate =
23762 fe_dai_app_type_cfg[i][session_type]
23763 [be_id].sample_rate;
23764 bits_per_sample =
23765 app_type_cfg[app_type_idx].bit_width;
23766 } else
23767 sample_rate = bedai->sample_rate;
23768 /*
23769 * check if ADM needs to be configured with different
23770 * channel mapping than backend
23771 */
23772 if (!bedai->adm_override_ch)
23773 channels = bedai->channel;
23774 else
23775 channels = bedai->adm_override_ch;
23776 acdb_dev_id =
23777 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23778 topology = msm_routing_get_adm_topology(i, session_type,
23779 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023780
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023781 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23782 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23783 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023784 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23785
Surendar Karkae7507512018-07-20 15:46:54 +053023786 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023787 sample_rate, channels, topology,
23788 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053023789 app_type, acdb_dev_id,
23790 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023791 if ((copp_idx < 0) ||
23792 (copp_idx >= MAX_COPPS_PER_PORT)) {
23793 pr_err("%s: adm open failed\n", __func__);
23794 mutex_unlock(&routing_lock);
23795 return -EINVAL;
23796 }
23797 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23798 __func__, i, session_type, be_id);
23799 set_bit(copp_idx,
23800 &session_copp_map[i][session_type][be_id]);
23801
23802 if (msm_is_resample_needed(
23803 sample_rate,
23804 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053023805 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023806 bedai->sample_rate);
23807
23808 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023809 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023810 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023811 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023812 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023813 topology, channels);
23814 }
23815 }
23816
23817 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23818 session_id = msm_pcm_routing_get_voc_sessionid(i);
23819 if (session_id) {
23820 pr_debug("%s voice session_id: 0x%x\n", __func__,
23821 session_id);
23822
23823 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23824 voc_path_type = RX_PATH;
23825 else
23826 voc_path_type = TX_PATH;
23827
23828 voc_set_route_flag(session_id, voc_path_type, 1);
23829
23830 memset(&voc_be_media_format, 0,
23831 sizeof(struct media_format_info));
23832
23833 voc_be_media_format.port_id = bedai->port_id;
23834 voc_be_media_format.num_channels = bedai->channel;
23835 voc_be_media_format.sample_rate = bedai->sample_rate;
23836 voc_be_media_format.bits_per_sample = bedai->format;
23837 /* Defaulting this to 1 for voice call usecases */
23838 voc_be_media_format.channel_mapping[0] = 1;
23839
23840 voc_set_device_config(session_id, voc_path_type,
23841 &voc_be_media_format);
23842
23843 if (voc_get_route_flag(session_id, RX_PATH) &&
23844 voc_get_route_flag(session_id, TX_PATH))
23845 voc_enable_device(session_id);
23846 }
23847 }
23848
23849 /* Check if backend is an external ec ref port and set as needed */
23850 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23851
23852 memset(&voc_be_media_format, 0,
23853 sizeof(struct media_format_info));
23854
23855 /* Get format info for ec ref port from msm_bedais[] */
23856 voc_be_media_format.port_id = bedai->port_id;
23857 voc_be_media_format.num_channels = bedai->channel;
23858 voc_be_media_format.bits_per_sample = bedai->format;
23859 voc_be_media_format.sample_rate = bedai->sample_rate;
23860 /* Defaulting this to 1 for voice call usecases */
23861 voc_be_media_format.channel_mapping[0] = 1;
23862 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23863 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23864 __func__, voc_be_media_format.port_id,
23865 voc_be_media_format.num_channels,
23866 voc_be_media_format.bits_per_sample,
23867 voc_be_media_format.sample_rate);
23868 }
23869
23870done:
23871 mutex_unlock(&routing_lock);
23872
23873 return 0;
23874}
23875
23876static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23877 int fe_id)
23878{
23879 int index, topo_id, be_idx;
23880 unsigned long pp_config = 0;
23881 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023882 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023883 bool compr_passthr_mode = true;
23884
23885 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23886
23887 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23888 pr_err("%s: Device pp params on invalid port %d\n",
23889 __func__, port_id);
23890 return -EINVAL;
23891 }
23892
23893 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23894 if (port_id == msm_bedais[be_idx].port_id)
23895 break;
23896 }
23897
23898 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23899 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23900 return -EINVAL;
23901 }
23902
23903 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23904 if (msm_bedais_pp_params[index].port_id == port_id)
23905 break;
23906 }
23907 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23908 pr_err("%s: Invalid backend pp params index %d\n",
23909 __func__, index);
23910 return -EINVAL;
23911 }
23912
23913 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23914 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23915 pr_err("%s: Invalid passthrough topology 0x%x\n",
23916 __func__, topo_id);
23917 return -EINVAL;
23918 }
23919
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023920 session_type =
23921 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23922 SESSION_TYPE_RX : SESSION_TYPE_TX;
23923
23924 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23925 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023926 compr_passthr_mode = false;
23927
23928 pp_config = msm_bedais_pp_params[index].pp_params_config;
23929 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23930 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23931 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23932 mute_on = msm_bedais_pp_params[index].mute_on;
23933 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23934 adm_send_compressed_device_mute(port_id,
23935 copp_idx,
23936 mute_on);
23937 }
23938 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23939 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23940 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23941 &pp_config);
23942 latency = msm_bedais_pp_params[index].latency;
23943 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23944 adm_send_compressed_device_latency(port_id,
23945 copp_idx,
23946 latency);
23947 }
23948 return 0;
23949}
23950
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023951static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23952{
23953 uint32_t topology = NULL_COPP_TOPOLOGY;
23954 void *cal_info = NULL;
23955 uint32_t size = 0;
23956
23957 /* Retrieve cal_info size from cal data*/
23958 size = data_size - sizeof(struct audio_cal_type_basic);
23959 cal_info = kzalloc(size, GFP_KERNEL);
23960
23961 if (!cal_info)
23962 goto done;
23963
23964 memcpy(cal_info,
23965 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23966
23967 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23968 kfree(cal_info);
23969 cal_info = NULL;
23970
23971done:
23972 pr_debug("%s: Using topology %d\n", __func__, topology);
23973
23974 return topology;
23975}
23976
23977static void msm_routing_load_topology(size_t data_size, void *data)
23978{
23979 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023980 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023981
23982 topology_id = msm_routing_get_topology(data_size, data);
23983 if (topology_id != NULL_COPP_TOPOLOGY)
23984 ret = q6core_load_unload_topo_modules(topology_id,
23985 CORE_LOAD_TOPOLOGY);
23986 if (ret < 0)
23987 pr_debug("%s %d load topology failed\n",
23988 __func__, topology_id);
23989
23990}
23991
23992static void msm_routing_unload_topology(uint32_t topology_id)
23993{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023994 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023995
23996 if (topology_id != NULL_COPP_TOPOLOGY)
23997 ret = q6core_load_unload_topo_modules(topology_id,
23998 CORE_UNLOAD_TOPOLOGY);
23999 if (ret < 0)
24000 pr_debug("%s %d unload topology failed\n",
24001 __func__, topology_id);
24002
24003}
24004
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024005static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
24006 struct snd_ctl_elem_value *ucontrol)
24007{
24008 int pp_id = ucontrol->value.integer.value[0];
24009 int port_id = 0;
24010 int index, be_idx, i, topo_id, idx;
24011 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024012 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024013 bool compr_passthr_mode = true;
24014
24015 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
24016
24017 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
24018 port_id = msm_bedais[be_idx].port_id;
24019 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
24020 break;
24021 }
24022
24023 if (be_idx >= MSM_BACKEND_DAI_MAX) {
24024 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
24025 return -EINVAL;
24026 }
24027
24028 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
24029 if (msm_bedais_pp_params[index].port_id == port_id)
24030 break;
24031 }
24032 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
24033 pr_err("%s: Invalid pp params backend index %d\n",
24034 __func__, index);
24035 return -EINVAL;
24036 }
24037
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024038 session_type =
24039 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
24040 SESSION_TYPE_RX : SESSION_TYPE_TX;
24041
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024042 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
24043 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024044 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
24045 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024046 compr_passthr_mode = false;
24047
24048 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
24049 unsigned long copp =
24050 session_copp_map[i]
24051 [SESSION_TYPE_RX][be_idx];
24052 if (!test_bit(idx, &copp))
24053 continue;
24054 topo_id = adm_get_topology_for_port_copp_idx(port_id,
24055 idx);
24056 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
24057 continue;
24058 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
24059 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024060 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024061 switch (pp_id) {
24062 case ADM_PP_PARAM_MUTE_ID:
24063 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
24064 mute = ucontrol->value.integer.value[1] ? true : false;
24065 msm_bedais_pp_params[index].mute_on = mute;
24066 set_bit(ADM_PP_PARAM_MUTE_BIT,
24067 &msm_bedais_pp_params[index].pp_params_config);
24068 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24069 adm_send_compressed_device_mute(port_id,
24070 idx, mute);
24071 break;
24072 case ADM_PP_PARAM_LATENCY_ID:
24073 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
24074 msm_bedais_pp_params[index].latency =
24075 ucontrol->value.integer.value[1];
24076 set_bit(ADM_PP_PARAM_LATENCY_BIT,
24077 &msm_bedais_pp_params[index].pp_params_config);
24078 latency = msm_bedais_pp_params[index].latency =
24079 ucontrol->value.integer.value[1];
24080 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24081 adm_send_compressed_device_latency(port_id,
24082 idx, latency);
24083 break;
24084 default:
24085 pr_info("%s, device pp param %d not supported\n",
24086 __func__, pp_id);
24087 break;
24088 }
24089 }
24090 }
24091 return 0;
24092}
24093
24094static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
24095 struct snd_ctl_elem_value *ucontrol)
24096{
24097 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
24098 return 0;
24099}
24100
24101static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
24102 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
24103 0, 3, msm_routing_get_device_pp_params_mixer,
24104 msm_routing_put_device_pp_params_mixer),
24105};
24106
24107static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
24108 struct snd_ctl_elem_value *ucontrol)
24109{
24110 ucontrol->value.integer.value[0] =
24111 core_get_license_status(ASM_MEDIA_FMT_APTX);
24112 pr_debug("%s: status %ld\n", __func__,
24113 ucontrol->value.integer.value[0]);
24114 return 0;
24115}
24116
24117static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
24118 struct snd_ctl_elem_value *ucontrol)
24119{
24120 int32_t status = 0;
24121
24122 status = core_set_license(ucontrol->value.integer.value[0],
24123 APTX_CLASSIC_DEC_LICENSE_ID);
24124 pr_debug("%s: status %d\n", __func__, status);
24125 return status;
24126}
24127
24128static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
24129 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
24130 0xFFFF, 0, msm_aptx_dec_license_control_get,
24131 msm_aptx_dec_license_control_put),
24132};
24133
24134static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
24135 struct snd_ctl_elem_info *uinfo)
24136{
24137 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
24138 uinfo->count = sizeof(be_dai_name_table);
24139 return 0;
24140}
24141
24142static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
24143 unsigned int __user *bytes,
24144 unsigned int size)
24145{
24146 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053024147 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024148
24149 if (size < sizeof(be_dai_name_table)) {
24150 pr_err("%s: invalid size %d requested, returning\n",
24151 __func__, size);
24152 ret = -EINVAL;
24153 goto done;
24154 }
24155
24156 /*
24157 * Fill be_dai_name_table from msm_bedais table to reduce code changes
24158 * needed when adding new backends
24159 */
24160 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24161 be_dai_name_table[i].be_id = i;
24162 strlcpy(be_dai_name_table[i].be_name,
24163 msm_bedais[i].name,
24164 LPASS_BE_NAME_MAX_LENGTH);
24165 }
24166
24167 ret = copy_to_user(bytes, &be_dai_name_table,
24168 sizeof(be_dai_name_table));
24169 if (ret) {
24170 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
24171 ret = -EFAULT;
24172 }
24173
24174done:
24175 return ret;
24176}
24177
24178static const struct snd_kcontrol_new
24179 msm_routing_be_dai_name_table_mixer_controls[] = {
24180 {
24181 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
24182 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
24183 .info = msm_routing_be_dai_name_table_info,
24184 .name = "Backend DAI Name Table",
24185 .tlv.c = snd_soc_bytes_tlv_callback,
24186 .private_value = (unsigned long) &(struct soc_bytes_ext) {
24187 .max = sizeof(be_dai_name_table),
24188 .get = msm_routing_be_dai_name_table_tlv_get,
24189 }
24190 },
24191};
24192
24193static int msm_routing_stereo_channel_reverse_control_get(
24194 struct snd_kcontrol *kcontrol,
24195 struct snd_ctl_elem_value *ucontrol)
24196{
24197 ucontrol->value.integer.value[0] = swap_ch;
24198 pr_debug("%s: Swap channel value: %ld\n", __func__,
24199 ucontrol->value.integer.value[0]);
24200 return 0;
24201}
24202
24203static int msm_routing_stereo_channel_reverse_control_put(
24204 struct snd_kcontrol *kcontrol,
24205 struct snd_ctl_elem_value *ucontrol)
24206{
24207 int i, idx, be_index, port_id;
24208 int ret = 0;
24209 unsigned long copp;
24210
24211 pr_debug("%s Swap channel value:%ld\n", __func__,
24212 ucontrol->value.integer.value[0]);
24213
24214 swap_ch = ucontrol->value.integer.value[0];
24215
24216 mutex_lock(&routing_lock);
24217 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
24218 port_id = msm_bedais[be_index].port_id;
24219 if (!msm_bedais[be_index].active)
24220 continue;
24221
24222 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
24223 MSM_FRONTEND_DAI_MM_SIZE) {
24224 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
24225 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
24226 if (!test_bit(idx, &copp))
24227 continue;
24228
24229 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
24230 __func__, port_id, idx);
24231 ret = adm_swap_speaker_channels(
24232 port_id, idx,
24233 msm_bedais[be_index].sample_rate,
24234 swap_ch);
24235 if (ret) {
24236 pr_err("%s:Swap_channel failed, err=%d\n",
24237 __func__, ret);
24238 goto done;
24239 }
24240 }
24241 }
24242 }
24243done:
24244 mutex_unlock(&routing_lock);
24245 return ret;
24246}
24247
24248static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
24249 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
24250 1, 0, msm_routing_stereo_channel_reverse_control_get,
24251 msm_routing_stereo_channel_reverse_control_put),
24252};
24253
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024254static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
24255 struct snd_ctl_elem_info *uinfo)
24256{
24257 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
24258 uinfo->count = 1;
24259 return 0;
24260}
24261
24262static int msm_routing_instance_id_support_put(
24263 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24264{
24265 bool supported = ucontrol->value.integer.value[0] ? true : false;
24266
24267 q6common_update_instance_id_support(supported);
24268 return 0;
24269}
24270
24271static int msm_routing_instance_id_support_get(
24272 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24273{
24274 bool supported = false;
24275
24276 supported = q6common_is_instance_id_supported();
24277 ucontrol->value.integer.value[0] = supported ? 1 : 0;
24278
24279 return 0;
24280}
24281
24282static const struct snd_kcontrol_new
24283 msm_routing_feature_support_mixer_controls[] = {
24284 {
24285 .access = SNDRV_CTL_ELEM_ACCESS_READ |
24286 SNDRV_CTL_ELEM_ACCESS_WRITE,
24287 .info = msm_routing_instance_id_support_info,
24288 .name = "Instance ID Support",
24289 .put = msm_routing_instance_id_support_put,
24290 .get = msm_routing_instance_id_support_get,
24291 },
24292};
24293
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024294static const struct snd_pcm_ops msm_routing_pcm_ops = {
24295 .hw_params = msm_pcm_routing_hw_params,
24296 .close = msm_pcm_routing_close,
24297 .prepare = msm_pcm_routing_prepare,
24298};
24299
24300/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080024301static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024302{
Meng Wangee084a02018-09-04 16:11:58 +080024303 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024304 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080024305 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024306 ARRAY_SIZE(intercon));
24307
Meng Wangee084a02018-09-04 16:11:58 +080024308 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024309
Meng Wangee084a02018-09-04 16:11:58 +080024310 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024311 ARRAY_SIZE(lsm_controls));
24312
Meng Wangee084a02018-09-04 16:11:58 +080024313 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024314 ARRAY_SIZE(aanc_slim_0_rx_mux));
24315
Meng Wangee084a02018-09-04 16:11:58 +080024316 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053024317 ARRAY_SIZE(aanc_noise_level));
24318
Meng Wangee084a02018-09-04 16:11:58 +080024319 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024320 ARRAY_SIZE(msm_voc_session_controls));
24321
Meng Wangee084a02018-09-04 16:11:58 +080024322 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024323 ARRAY_SIZE(app_type_cfg_controls));
24324
Meng Wangee084a02018-09-04 16:11:58 +080024325 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024326 ARRAY_SIZE(lsm_app_type_cfg_controls));
24327
Meng Wangee084a02018-09-04 16:11:58 +080024328 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070024329 ARRAY_SIZE(module_cfg_controls));
24330
Meng Wangee084a02018-09-04 16:11:58 +080024331 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024332 stereo_to_custom_stereo_controls,
24333 ARRAY_SIZE(stereo_to_custom_stereo_controls));
24334
Meng Wangee084a02018-09-04 16:11:58 +080024335 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024336 ARRAY_SIZE(ec_ref_param_controls));
24337
Meng Wangee084a02018-09-04 16:11:58 +080024338 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024339 ARRAY_SIZE(channel_mixer_controls));
24340
Meng Wangee084a02018-09-04 16:11:58 +080024341 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024342
Meng Wangee084a02018-09-04 16:11:58 +080024343 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024344
Meng Wangee084a02018-09-04 16:11:58 +080024345 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024346
Meng Wangee084a02018-09-04 16:11:58 +080024347 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024348 use_ds1_or_ds2_controls,
24349 ARRAY_SIZE(use_ds1_or_ds2_controls));
24350
Meng Wangee084a02018-09-04 16:11:58 +080024351 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024352 device_pp_params_mixer_controls,
24353 ARRAY_SIZE(device_pp_params_mixer_controls));
24354
Meng Wangee084a02018-09-04 16:11:58 +080024355 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024356 msm_routing_be_dai_name_table_mixer_controls,
24357 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
24358
Meng Wangee084a02018-09-04 16:11:58 +080024359 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024360 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024361 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024362 ARRAY_SIZE(adm_channel_config_controls));
24363
Meng Wangee084a02018-09-04 16:11:58 +080024364 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024365 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024366 snd_soc_add_component_controls(component,
24367 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024368 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080024369 snd_soc_add_component_controls(
24370 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024371 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
24372
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024373 return 0;
24374}
24375
24376int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
24377{
24378 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
24379}
24380
24381void msm_routing_pcm_free(struct snd_pcm *pcm)
24382{
24383 msm_pcm_routing_hwdep_free(pcm);
24384}
24385
Meng Wangee084a02018-09-04 16:11:58 +080024386static struct snd_soc_component_driver msm_soc_routing_component = {
24387 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024388 .ops = &msm_routing_pcm_ops,
24389 .probe = msm_routing_probe,
24390 .pcm_new = msm_routing_pcm_new,
24391 .pcm_free = msm_routing_pcm_free,
24392};
24393
24394static int msm_routing_pcm_probe(struct platform_device *pdev)
24395{
24396
24397 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080024398 return snd_soc_register_component(&pdev->dev,
24399 &msm_soc_routing_component,
24400 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024401}
24402
24403static int msm_routing_pcm_remove(struct platform_device *pdev)
24404{
Meng Wangee084a02018-09-04 16:11:58 +080024405 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024406 return 0;
24407}
24408
24409static const struct of_device_id msm_pcm_routing_dt_match[] = {
24410 {.compatible = "qcom,msm-pcm-routing"},
24411 {}
24412};
24413MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
24414
24415static struct platform_driver msm_routing_pcm_driver = {
24416 .driver = {
24417 .name = "msm-pcm-routing",
24418 .owner = THIS_MODULE,
24419 .of_match_table = msm_pcm_routing_dt_match,
24420 },
24421 .probe = msm_routing_pcm_probe,
24422 .remove = msm_routing_pcm_remove,
24423};
24424
24425int msm_routing_check_backend_enabled(int fedai_id)
24426{
24427 int i;
24428
24429 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
24430 /* bad ID assigned in machine driver */
24431 pr_err("%s: bad MM ID\n", __func__);
24432 return 0;
24433 }
24434 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24435 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
24436 return msm_bedais[i].active;
24437 }
24438 return 0;
24439}
24440
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024441static int get_cal_type_index(int32_t cal_type)
24442{
24443 int ret = -EINVAL;
24444
24445 switch (cal_type) {
24446 case ADM_TOPOLOGY_CAL_TYPE:
24447 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
24448 break;
24449 case ADM_LSM_TOPOLOGY_CAL_TYPE:
24450 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
24451 break;
24452 default:
24453 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
24454 }
24455 return ret;
24456}
24457
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024458static int msm_routing_set_cal(int32_t cal_type,
24459 size_t data_size, void *data)
24460{
24461 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024462 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024463 pr_debug("%s\n", __func__);
24464
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024465 cal_index = get_cal_type_index(cal_type);
24466 if (cal_index < 0) {
24467 pr_err("%s: Could not get cal index %d\n",
24468 __func__, cal_index);
24469 ret = -EINVAL;
24470 goto done;
24471 }
24472
24473 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024474 if (ret < 0) {
24475 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
24476 __func__, ret, cal_type);
24477 ret = -EINVAL;
24478 goto done;
24479 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024480 /* Pre-load if it is ADM topology */
24481 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
24482 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
24483 msm_routing_load_topology(data_size, data);
24484 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024485done:
24486 return ret;
24487}
24488
24489static void msm_routing_delete_cal_data(void)
24490{
24491 pr_debug("%s\n", __func__);
24492
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024493 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024494}
24495
24496static int msm_routing_init_cal_data(void)
24497{
24498 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024499 struct cal_type_info cal_type_info[] = {
24500 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024501 {NULL, NULL, NULL,
24502 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024503 {NULL, NULL, cal_utils_match_buf_num} },
24504
24505 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
24506 {NULL, NULL, NULL,
24507 msm_routing_set_cal, NULL, NULL} },
24508 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024509 };
24510 pr_debug("%s\n", __func__);
24511
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024512 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
24513 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024514 if (ret < 0) {
24515 pr_err("%s: could not create cal type!\n",
24516 __func__);
24517 ret = -EINVAL;
24518 goto err;
24519 }
24520
24521 return ret;
24522err:
24523 msm_routing_delete_cal_data();
24524 return ret;
24525}
24526
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053024527int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024528{
24529 mutex_init(&routing_lock);
24530 if (msm_routing_init_cal_data())
24531 pr_err("%s: could not init cal data!\n", __func__);
24532
24533 afe_set_routing_callback(
24534 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
24535
24536 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24537 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
24538
24539 return platform_driver_register(&msm_routing_pcm_driver);
24540}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024541
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053024542void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024543{
24544 msm_routing_delete_cal_data();
24545 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24546 mutex_destroy(&routing_lock);
24547 platform_driver_unregister(&msm_routing_pcm_driver);
24548}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024549
24550MODULE_DESCRIPTION("MSM routing platform driver");
24551MODULE_LICENSE("GPL v2");