blob: f3795be8524c5d3ca7d8c5bb2380d6a08e5a87f8 [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;
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +053085static int afe_loopback_tx_port_index;
86static int afe_loopback_tx_port_id = -1;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053087
88#define WEIGHT_0_DB 0x4000
89/* all the FEs which can support channel mixer */
90static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
Dhananjay Kumar807f7e92018-12-11 18:10:08 +053091
92/* all the FES which can support channel mixer for bidirection */
93static struct msm_pcm_channel_mixer
94 channel_mixer_v2[MSM_FRONTEND_DAI_MM_SIZE][2];
95
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053096/* input BE for each FE */
97static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
98
99enum {
100 MADNONE,
101 MADAUDIO,
102 MADBEACON,
103 MADULTRASOUND,
104 MADSWAUDIO,
105};
106
107#define ADM_LSM_PORT_INDEX 9
108
109#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
110#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
111#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
112#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
113#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
114#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
115#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
116#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
117#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
118#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530119#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
120#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800121#define VA_CDC_DMA_TX_2_TEXT "VA_CDC_DMA_TX_2"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530122#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530123#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530124
125#define LSM_FUNCTION_TEXT "LSM Function"
126static const char * const lsm_port_text[] = {
127 "None",
128 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
129 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
130 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530131 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800132 VA_CDC_DMA_TX_2_TEXT, TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530133};
134
135struct msm_pcm_route_bdai_pp_params {
136 u16 port_id; /* AFE port ID */
137 unsigned long pp_params_config;
138 bool mute_on;
139 int latency;
140};
141
142static struct msm_pcm_route_bdai_pp_params
143 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
144 {HDMI_RX, 0, 0, 0},
145 {DISPLAY_PORT_RX, 0, 0, 0},
146};
147
148/*
149 * The be_dai_name_table is passed to HAL so that it can specify the
150 * BE ID for the BE it wants to enable based on the name. Thus there
151 * is a matching table and structure in HAL that need to be updated
152 * if any changes to these are made.
153 */
154struct msm_pcm_route_bdai_name {
155 unsigned int be_id;
156 char be_name[LPASS_BE_NAME_MAX_LENGTH];
157};
158static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
159
160static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
161 int fe_id);
162
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700163static void msm_routing_load_topology(size_t data_size, void *data);
164static void msm_routing_unload_topology(uint32_t topology_id);
165
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530166static int msm_routing_get_bit_width(unsigned int format)
167{
168 int bit_width;
169
170 switch (format) {
171 case SNDRV_PCM_FORMAT_S32_LE:
172 bit_width = 32;
173 break;
174 case SNDRV_PCM_FORMAT_S24_LE:
175 case SNDRV_PCM_FORMAT_S24_3LE:
176 bit_width = 24;
177 break;
178 case SNDRV_PCM_FORMAT_S16_LE:
179 default:
180 bit_width = 16;
181 }
182 return bit_width;
183}
184
185static bool msm_is_resample_needed(int input_sr, int output_sr)
186{
187 bool rc = false;
188
189 if (input_sr != output_sr)
190 rc = true;
191
192 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
193 (rc ? "oh yes" : "not really"),
194 input_sr, output_sr);
195
196 return rc;
197}
198
199static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
200 int channels)
201{
202 int rc = 0;
203
204 switch (topology) {
205 case SRS_TRUMEDIA_TOPOLOGY_ID:
206 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
207 msm_dts_srs_tm_init(port_id, copp_idx);
208 break;
209 case DS2_ADM_COPP_TOPOLOGY_ID:
210 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
211 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
212 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
213 is_custom_stereo_on);
214 if (rc < 0)
215 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
216 __func__, topology, port_id,
217 is_custom_stereo_on, rc);
218 break;
219 case DOLBY_ADM_COPP_TOPOLOGY_ID:
220 if (is_ds2_on) {
221 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
222 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
223 is_custom_stereo_on);
224 if (rc < 0)
225 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
226 __func__, topology, port_id, rc);
227 } else {
228 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
229 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
230 is_custom_stereo_on);
231 if (rc < 0)
232 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
233 __func__, topology, port_id, rc);
234 }
235 break;
236 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
237 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
238 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
239 if (rc < 0)
240 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
241 __func__, topology, port_id, copp_idx, rc);
242 break;
243 default:
244 /* custom topology specific feature param handlers */
245 break;
246 }
247}
248
249static void msm_pcm_routing_deinit_pp(int port_id, int topology)
250{
251 switch (topology) {
252 case SRS_TRUMEDIA_TOPOLOGY_ID:
253 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
254 msm_dts_srs_tm_deinit(port_id);
255 break;
256 case DS2_ADM_COPP_TOPOLOGY_ID:
257 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
258 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
259 msm_ds2_dap_deinit(port_id);
260 break;
261 case DOLBY_ADM_COPP_TOPOLOGY_ID:
262 if (is_ds2_on) {
263 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
264 msm_ds2_dap_deinit(port_id);
265 } else {
266 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
267 msm_dolby_dap_deinit(port_id);
268 }
269 break;
270 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
271 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
272 msm_qti_pp_asphere_deinit(port_id);
273 break;
274 default:
275 /* custom topology specific feature deinit handlers */
276 break;
277 }
278}
279
280static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
281 int path_type, int perf_mode)
282{
283 int itr = 0, rc = 0;
284
285 if ((path_type == ADM_PATH_PLAYBACK) &&
286 (perf_mode == LEGACY_PCM_MODE) &&
287 is_custom_stereo_on) {
288 for (itr = 0; itr < payload.num_copps; itr++) {
289 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
290 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
291 continue;
292 }
293
294 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
295 payload.port_id[itr],
296 payload.copp_idx[itr],
297 payload.session_id,
298 Q14_GAIN_ZERO_POINT_FIVE,
299 Q14_GAIN_ZERO_POINT_FIVE,
300 Q14_GAIN_ZERO_POINT_FIVE,
301 Q14_GAIN_ZERO_POINT_FIVE);
302 if (rc < 0)
303 pr_err("%s: err setting custom stereo\n",
304 __func__);
305 }
306 }
307}
308
309#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
310struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530311 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
312 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
313 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
314 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
315 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
316 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
317 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
318 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
319 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
320 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530321 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530322 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530323 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530324 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530325 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530326 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530327 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530328 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530329 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530330 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530331 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530332 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530333 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530334 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530335 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530336 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
337 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
338 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
339 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
340 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
341 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
342 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
343 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
344 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
345 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
346 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
347 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
348 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
349 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
350 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
351 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
352 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
353 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
354 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
355 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
356 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
357 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
358 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530359 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530360 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530361 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530362 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530363 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530364 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530365 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530366 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530367 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530368 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530369 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530370 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530371 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530372 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530374 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530375 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530376 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530377 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530378 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530379 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530380 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200381 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530382 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530383 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530384 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530385 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530386 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530387 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530388 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530389 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530390 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530391 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530392 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530393 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530394 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530395 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530396 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530397 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530398 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530399 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530400 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530401 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530402 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530403 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530404 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530405 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530406 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530407 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530408 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530409 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530410 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530411 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530412 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530413 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530414 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530415 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530416 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530417 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530418 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530419 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530420 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530421 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530422 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530423 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530424 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530425 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530426 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530427 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530428 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530429 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530430 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530431 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530432 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530433 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530434 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530435 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530436 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530437 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530438 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530439 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530440 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530441 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530442 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530443 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530444 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530445 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530446 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530447 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530448 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530449 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530450 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530451 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530452 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530453 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530454 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530455 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530456 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530457 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530458 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530459 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530460 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530461 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530462 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530463 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530464 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530465 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530466 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530467 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530468 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530469 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530470 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530471 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530472 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530473 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530474 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530475 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530476 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530477 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530478 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530479 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530480 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530481 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530482 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530483 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530484 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530485 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530486 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530487 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530488 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530489 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530490 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530491 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530492 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530493 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530494 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530495 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530496 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530497 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530498 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530499 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530500 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530501 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530502 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530503 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530504 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530505 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530506 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530507 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530508 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530509 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530510 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530511 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530512 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530513 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530514 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530515 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530516 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530517 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530518 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530519 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530520 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530521 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530522 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530523 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530524 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530525 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530526 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530527 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530528 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530529 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530530 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530531 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530532 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530533 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530534 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530535 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530536 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530537 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530538 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530539 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530540 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530541 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530542 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530543 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530544 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530545 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530546 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530547 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530548 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530549 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530550 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530551 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530552 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530553 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530554 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530555 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530556 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530557 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530558 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700559 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530560 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530561 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530562 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530563 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530564 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530565 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530566 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530567 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530568 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530569 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530570 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530571 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530572 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530573 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530574 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530575 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530576 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530577 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530578 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530579 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530580 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530581 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530582 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530583 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530584 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530585 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530586 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530587 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530588 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530589 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530590 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530591 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530592 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530593 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530594 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530595 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530596 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530597 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530598 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530599 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200600 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
601 LPASS_BE_SEN_AUXPCM_RX},
602 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
603 LPASS_BE_SEN_AUXPCM_TX},
604 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
605 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530606 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530607 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530608 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530609 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530610 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530611 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530612 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530613 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530614 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530615 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530616 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530617 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530618 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530619 LPASS_BE_VA_CDC_DMA_TX_1},
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800620 { AFE_PORT_ID_VA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
621 LPASS_BE_VA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530622 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530623 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530624 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530625 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530626 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530627 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530628 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530629 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530630 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530631 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530632 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530633 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530634 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530635 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530636 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530637 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530638 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530639 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530640 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530641 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530642 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530643 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530644 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530645 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530646 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530647 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530648 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530649 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530650 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200651 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530652 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200653 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530654 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200655 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530656 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
657 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530658 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530659};
660
661/* Track ASM playback & capture sessions of DAI
662 * Track LSM listen sessions
663 */
664static struct msm_pcm_routing_fdai_data
665 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
666 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530667 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
668 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530669 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530670 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
671 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530672 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530673 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
674 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530675 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530676 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
677 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530678 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530679 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
680 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530681 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530682 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
683 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530684 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530685 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
686 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530687 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530688 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
689 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530690 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530691 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
692 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530693 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530694 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
695 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530696 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530697 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
698 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530699 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530700 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
701 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530702 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530703 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
704 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530705 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530706 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
707 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530708 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530709 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
710 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530711 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530712 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
713 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530714 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530715 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
716 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530717 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530718 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
719 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530720 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530721 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
722 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530723 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530724 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
725 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700726 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530727 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
728 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530729 /* MULTIMEDIA26 */
730 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
731 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
732 /* MULTIMEDIA27 */
733 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
734 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530735 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530736 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
737 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530738 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530739 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
740 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530741 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530742 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
743 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530744 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530745 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
746 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530747 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530748 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
749 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530750 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530751 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
752 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530753 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530754 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
755 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530756 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530757 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
758 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530759 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530760 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
761 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530762 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530763 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
764 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530765 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530766 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
767 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530768 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530769 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
770 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530771 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530772 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
773 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530774 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530775 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
776 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530777 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530778 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
779 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530780 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530781 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
782 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530783 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530784 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
785 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530786 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530787 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
788 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530789 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530790 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
791 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530792 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530793 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
794 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530795};
796
797static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
798 [MSM_BACKEND_DAI_MAX];
799static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
800static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
801static struct msm_pcm_stream_app_type_cfg
802 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
803
804static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
805
Florian Pfister522073c2018-09-26 15:39:15 +0200806/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530807void msm_pcm_routing_get_bedai_info(int be_idx,
808 struct msm_pcm_routing_bdai_data *be_dai)
809{
810 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
811 memcpy(be_dai, &msm_bedais[be_idx],
812 sizeof(struct msm_pcm_routing_bdai_data));
813}
814
Florian Pfister522073c2018-09-26 15:39:15 +0200815/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530816void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
817 struct msm_pcm_routing_fdai_data *fe_dai)
818{
819 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
820 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
821 sizeof(struct msm_pcm_routing_fdai_data));
822}
823
824void msm_pcm_routing_acquire_lock(void)
825{
826 mutex_lock(&routing_lock);
827}
828
829void msm_pcm_routing_release_lock(void)
830{
831 mutex_unlock(&routing_lock);
832}
833
834static int msm_pcm_routing_get_app_type_idx(int app_type)
835{
836 int idx;
837
838 pr_debug("%s: app_type: %d\n", __func__, app_type);
839 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
840 if (app_type_cfg[idx].app_type == app_type)
841 return idx;
842 }
843 pr_info("%s: App type not available, fallback to default\n", __func__);
844 return 0;
845}
846
847static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
848{
849 int idx;
850
851 pr_debug("%s: app_type: %d\n", __func__, app_type);
852 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
853 if (lsm_app_type_cfg[idx].app_type == app_type)
854 return idx;
855 }
856 pr_debug("%s: App type not available, fallback to default\n", __func__);
857 return 0;
858}
859
Surendar Karkae7507512018-07-20 15:46:54 +0530860static int get_port_id(int port_id)
861{
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +0530862 int ret = port_id;
863
864 if (port_id == AFE_LOOPBACK_TX) {
865 /*
866 * Return afe_loopback_tx_port_id if set. Else return
867 * msm_ec_ref_port_id to maintain backward compatibility.
868 */
869 if (afe_loopback_tx_port_id != -1)
870 ret = afe_loopback_tx_port_id;
871 else
872 ret = msm_ec_ref_port_id;
873 }
874
875 return ret;
Surendar Karkae7507512018-07-20 15:46:54 +0530876}
877
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530878static bool is_mm_lsm_fe_id(int fe_id)
879{
880 bool rc = true;
881
882 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
883 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
884 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
885 rc = false;
886 }
887 return rc;
888}
889
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700890/*
891 * msm_pcm_routing_send_chmix_cfg:
892 * send the channel mixer command to mix the input channels
893 * into output channels.
894 *
895 * @fe_id: front end id
896 * @ip_channel_cnt: input channel count
897 * @op_channel_cnt: output channel count
898 * @ch_wght_coeff: channel weight co-efficients for channel mixing
899 * @session_type: indicates session is of type TX or RX
900 * @stream_type: indicates either Audio or Listen stream type
901 */
902int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
903 int op_channel_cnt, int *ch_wght_coeff,
904 int session_type, int stream_type)
905{
906
907 int rc = 0, idx = 0;
908 int be_index = 0, port_id;
909 unsigned int session_id = 0;
910
911 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
912 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
913 stream_type);
914 if (!is_mm_lsm_fe_id(fe_id)) {
915 /* bad ID assigned in machine driver */
916 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
917 return -EINVAL;
918 }
919
920 if (ch_wght_coeff == NULL) {
921 pr_err("%s: Null channel weightage coefficients passed\n",
922 __func__);
923 return -EINVAL;
924 }
925
926 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
927 port_id = msm_bedais[be_index].port_id;
928 if (!msm_bedais[be_index].active ||
929 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
930 continue;
931
932 session_id = fe_dai_map[fe_id][session_type].strm_id;
933
934 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
935 unsigned long copp =
936 session_copp_map[fe_id][session_type][be_index];
937 if (!test_bit(idx, &copp))
938 continue;
939 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
940 session_id, ip_channel_cnt,
941 op_channel_cnt, ch_wght_coeff,
942 session_type, stream_type);
943 if (rc < 0)
944 pr_err("%s: err setting channel mix config\n",
945 __func__);
946 }
947 }
948
949 return 0;
950}
951EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
952
Dhananjay Kumar807f7e92018-12-11 18:10:08 +0530953/**
954 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
955 * setting before use case start.
956 *
957 * @fe_id: frontend idx
958 * @type: stream direction type
959 * @params: parameters of channel mixer setting
960 *
961 * Return 0 for success
962 */
963int msm_pcm_routing_set_channel_mixer_cfg(
964 int fe_id, int type,
965 struct msm_pcm_channel_mixer *params)
966{
967 int i, j = 0;
968
969 channel_mixer_v2[fe_id][type].enable = params->enable;
970 channel_mixer_v2[fe_id][type].rule = params->rule;
971 channel_mixer_v2[fe_id][type].input_channel =
972 params->input_channel;
973 channel_mixer_v2[fe_id][type].output_channel =
974 params->output_channel;
975 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
976
977 for (i = 0; i < ADM_MAX_CHANNELS; i++)
978 channel_mixer_v2[fe_id][type].in_ch_map[i] =
979 params->in_ch_map[i];
980 for (i = 0; i < ADM_MAX_CHANNELS; i++)
981 channel_mixer_v2[fe_id][type].out_ch_map[i] =
982 params->out_ch_map[i];
983
984 for (i = 0; i < ADM_MAX_CHANNELS; i++)
985 for (j = 0; j < ADM_MAX_CHANNELS; j++)
986 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
987 params->channel_weight[i][j];
988
989 channel_mixer_v2[fe_id][type].override_in_ch_map =
990 params->override_in_ch_map;
991 channel_mixer_v2[fe_id][type].override_out_ch_map =
992 params->override_out_ch_map;
993
994 return 0;
995}
996EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
997
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530998int msm_pcm_routing_reg_stream_app_type_cfg(
999 int fedai_id, int session_type, int be_id,
1000 struct msm_pcm_stream_app_type_cfg *cfg_data)
1001{
1002 int ret = 0;
1003
1004 if (cfg_data == NULL) {
1005 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
1006 ret = -EINVAL;
1007 goto done;
1008 }
1009
1010 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1011 __func__, fedai_id, session_type, be_id,
1012 cfg_data->app_type, cfg_data->acdb_dev_id,
1013 cfg_data->sample_rate);
1014
1015 if (!is_mm_lsm_fe_id(fedai_id)) {
1016 pr_err("%s: Invalid machine driver ID %d\n",
1017 __func__, fedai_id);
1018 ret = -EINVAL;
1019 goto done;
1020 }
1021 if (session_type != SESSION_TYPE_RX &&
1022 session_type != SESSION_TYPE_TX) {
1023 pr_err("%s: Invalid session type %d\n",
1024 __func__, session_type);
1025 ret = -EINVAL;
1026 goto done;
1027 }
1028 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1029 pr_err("%s: Received out of bounds be_id %d\n",
1030 __func__, be_id);
1031 ret = -EINVAL;
1032 goto done;
1033 }
1034
1035 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1036
1037 /*
1038 * Store the BE ID of the configuration information set as the latest so
1039 * the get mixer control knows what to return.
1040 */
1041 last_be_id_configured[fedai_id][session_type] = be_id;
1042
1043done:
1044 return ret;
1045}
1046EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1047
1048/**
1049 * msm_pcm_routing_get_stream_app_type_cfg
1050 *
1051 * Receives fedai_id, session_type, be_id, and populates app_type,
1052 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1053 * -EINVAL and does not alter passed values.
1054 *
1055 * fedai_id - Passed value, front end ID for which app type config is wanted
1056 * session_type - Passed value, session type for which app type config
1057 * is wanted
1058 * be_id - Returned value, back end device id the app type config data is for
1059 * cfg_data - Returned value, configuration data used by app type config
1060 */
1061int msm_pcm_routing_get_stream_app_type_cfg(
1062 int fedai_id, int session_type, int *bedai_id,
1063 struct msm_pcm_stream_app_type_cfg *cfg_data)
1064{
1065 int be_id;
1066 int ret = 0;
1067
1068 if (bedai_id == NULL) {
1069 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1070 ret = -EINVAL;
1071 goto done;
1072 } else if (cfg_data == NULL) {
1073 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1074 ret = -EINVAL;
1075 goto done;
1076 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1077 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1078 ret = -EINVAL;
1079 goto done;
1080 } else if (session_type != SESSION_TYPE_RX &&
1081 session_type != SESSION_TYPE_TX) {
1082 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1083 ret = -EINVAL;
1084 goto done;
1085 }
1086
1087 be_id = last_be_id_configured[fedai_id][session_type];
1088 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1089 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1090 ret = -EINVAL;
1091 goto done;
1092 }
1093
1094 *bedai_id = be_id;
1095 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1096 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1097 __func__, fedai_id, session_type, *bedai_id,
1098 cfg_data->app_type, cfg_data->acdb_dev_id,
1099 cfg_data->sample_rate);
1100done:
1101 return ret;
1102}
1103EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1104
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301105static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1106 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301107{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301108 struct list_head *ptr, *next;
1109 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301110 pr_debug("%s\n", __func__);
1111
1112 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301113 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301114
1115 cal_block = list_entry(ptr,
1116 struct cal_block_data, list);
1117
Vikram Panduranga770b8382017-09-27 12:17:36 -07001118 if (cal_utils_is_cal_stale(cal_block))
1119 continue;
1120
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301121 if (((struct audio_cal_info_adm_top *)cal_block
1122 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301123 return cal_block;
1124 }
1125 }
1126 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1127 return NULL;
1128}
1129
1130static struct cal_block_data *msm_routing_find_topology(int path,
1131 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301132 int acdb_id,
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001133 int cal_index,
1134 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301135{
1136 struct list_head *ptr, *next;
1137 struct cal_block_data *cal_block = NULL;
1138 struct audio_cal_info_adm_top *cal_info;
1139
1140 pr_debug("%s\n", __func__);
1141
1142 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301143 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301144
1145 cal_block = list_entry(ptr,
1146 struct cal_block_data, list);
1147
Vikram Panduranga770b8382017-09-27 12:17:36 -07001148 if (cal_utils_is_cal_stale(cal_block))
1149 continue;
1150
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301151 cal_info = (struct audio_cal_info_adm_top *)
1152 cal_block->cal_info;
1153 if ((cal_info->path == path) &&
1154 (cal_info->app_type == app_type) &&
1155 (cal_info->acdb_id == acdb_id)) {
1156 return cal_block;
1157 }
1158 }
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001159 pr_debug("%s: Can't find topology for path %d, app %d, "
1160 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1161 exact ? "fail" : "defaulting to search by path");
1162 return exact ? NULL : msm_routing_find_topology_by_path(path,
1163 cal_index);
1164}
1165
1166static int msm_routing_find_topology_on_index(int session_type, int app_type,
1167 int acdb_dev_id, int idx,
1168 bool exact)
1169{
1170 int topology = -EINVAL;
1171 struct cal_block_data *cal_block = NULL;
1172
1173 mutex_lock(&cal_data[idx]->lock);
1174 cal_block = msm_routing_find_topology(session_type, app_type,
1175 acdb_dev_id, idx, exact);
1176 if (cal_block != NULL) {
1177 topology = ((struct audio_cal_info_adm_top *)
1178 cal_block->cal_info)->topology;
1179 }
1180 mutex_unlock(&cal_data[idx]->lock);
1181 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301182}
1183
Vikram Panduranga770b8382017-09-27 12:17:36 -07001184/*
1185 * Retrieving cal_block will mark cal_block as stale.
1186 * Hence it cannot be reused or resent unless the flag
1187 * is reset.
1188 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301189static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1190 int be_id)
1191{
1192 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301193 int app_type = 0, acdb_dev_id = 0;
1194
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301195 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1196 __func__, fedai_id, session_type, be_id);
1197
1198 if (cal_data == NULL)
1199 goto done;
1200
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301201 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1202 acdb_dev_id =
1203 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1204
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001205 pr_debug("%s: Check for exact LSM topology\n", __func__);
1206 topology = msm_routing_find_topology_on_index(session_type,
1207 app_type,
1208 acdb_dev_id,
1209 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1210 true /*exact*/);
1211 if (topology < 0) {
1212 pr_debug("%s: Check for compatible topology\n", __func__);
1213 topology = msm_routing_find_topology_on_index(session_type,
1214 app_type,
1215 acdb_dev_id,
1216 ADM_TOPOLOGY_CAL_TYPE_IDX,
1217 false /*exact*/);
1218 if (topology < 0)
1219 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301220 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301221done:
1222 pr_debug("%s: Using topology %d\n", __func__, topology);
1223 return topology;
1224}
1225
1226static uint8_t is_be_dai_extproc(int be_dai)
1227{
1228 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1229 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1230 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1231 return 1;
1232 else
1233 return 0;
1234}
1235
1236static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1237 int path_type, int perf_mode,
1238 uint32_t passthr_mode)
1239{
1240 int i, port_type, j, num_copps = 0;
1241 struct route_payload payload;
1242
1243 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1244 path_type == ADM_PATH_COMPRESSED_RX) ?
1245 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1246
1247 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1248 if (!is_be_dai_extproc(i) &&
1249 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1250 (msm_bedais[i].active) &&
1251 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301252 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301253 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1254 unsigned long copp =
1255 session_copp_map[fedai_id][sess_type][i];
1256 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301257 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301258 payload.copp_idx[num_copps] = j;
1259 payload.app_type[num_copps] =
1260 fe_dai_app_type_cfg
1261 [fedai_id][sess_type][i]
1262 .app_type;
1263 payload.acdb_dev_id[num_copps] =
1264 fe_dai_app_type_cfg
1265 [fedai_id][sess_type][i]
1266 .acdb_dev_id;
1267 payload.sample_rate[num_copps] =
1268 fe_dai_app_type_cfg
1269 [fedai_id][sess_type][i]
1270 .sample_rate;
1271 num_copps++;
1272 }
1273 }
1274 }
1275 }
1276
1277 if (num_copps) {
1278 payload.num_copps = num_copps;
1279 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1280 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1281 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1282 }
1283}
1284
1285void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1286 int stream_type)
1287{
1288 int i, session_type, path_type, port_type;
1289 u32 mode = 0;
1290
1291 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1292 /* bad ID assigned in machine driver */
1293 pr_err("%s: bad MM ID\n", __func__);
1294 return;
1295 }
1296
1297 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1298 session_type = SESSION_TYPE_RX;
1299 path_type = ADM_PATH_PLAYBACK;
1300 port_type = MSM_AFE_PORT_TYPE_RX;
1301 } else {
1302 session_type = SESSION_TYPE_TX;
1303 path_type = ADM_PATH_LIVE_REC;
1304 port_type = MSM_AFE_PORT_TYPE_TX;
1305 }
1306
1307 mutex_lock(&routing_lock);
1308
1309 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1310 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1311 if (!is_be_dai_extproc(i) &&
1312 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1313 (msm_bedais[i].active) &&
1314 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1315 mode = afe_get_port_type(msm_bedais[i].port_id);
1316 adm_connect_afe_port(mode, dspst_id,
1317 msm_bedais[i].port_id);
1318 break;
1319 }
1320 }
1321 mutex_unlock(&routing_lock);
1322}
1323
1324static bool route_check_fe_id_adm_support(int fe_id)
1325{
1326 bool rc = true;
1327
1328 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1329 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1330 /* fe id is listen while port is set to afe */
1331 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1332 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1333 __func__, fe_id, lsm_port_index);
1334 rc = false;
1335 }
1336 }
1337
1338 return rc;
1339}
1340
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001341/*
1342 * msm_pcm_routing_get_pp_ch_cnt:
1343 * Read the processed channel count
1344 *
1345 * @fe_id: Front end ID
1346 * @session_type: Inidicates RX or TX session type
1347 */
1348int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1349{
1350 struct msm_pcm_stream_app_type_cfg cfg_data;
1351 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301352 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001353
1354 memset(&cfg_data, 0, sizeof(cfg_data));
1355
1356 if (!is_mm_lsm_fe_id(fe_id)) {
1357 pr_err("%s: bad MM ID\n", __func__);
1358 return -EINVAL;
1359 }
1360
1361 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1362 &be_id, &cfg_data);
1363 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301364 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001365 return ret;
1366 }
1367
1368 app_type = cfg_data.app_type;
1369 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1370 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1371}
1372EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1373
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301374int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1375 int dspst_id, int stream_type,
1376 uint32_t passthr_mode)
1377{
1378 int i, j, session_type, path_type, port_type, topology;
1379 int num_copps = 0;
1380 struct route_payload payload;
1381 u32 channels, sample_rate;
1382 u16 bit_width = 16;
1383 bool is_lsm;
1384
1385 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1386 __func__, fe_id, perf_mode, dspst_id,
1387 stream_type, passthr_mode);
1388 if (!is_mm_lsm_fe_id(fe_id)) {
1389 /* bad ID assigned in machine driver */
1390 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1391 return -EINVAL;
1392 }
1393
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301394 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1395 session_type = SESSION_TYPE_RX;
1396 if (passthr_mode != LEGACY_PCM)
1397 path_type = ADM_PATH_COMPRESSED_RX;
1398 else
1399 path_type = ADM_PATH_PLAYBACK;
1400 port_type = MSM_AFE_PORT_TYPE_RX;
1401 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1402 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301403 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301404 path_type = ADM_PATH_COMPRESSED_TX;
1405 else
1406 path_type = ADM_PATH_LIVE_REC;
1407 port_type = MSM_AFE_PORT_TYPE_TX;
1408 } else {
1409 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1410 return -EINVAL;
1411 }
1412
1413 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1414 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1415 mutex_lock(&routing_lock);
1416
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301417 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301418 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1419 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1420 if (!route_check_fe_id_adm_support(fe_id)) {
1421 /* ignore adm open if not supported for fe_id */
1422 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1423 mutex_unlock(&routing_lock);
1424 return 0;
1425 }
1426
1427 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301428 /* re-enable EQ if active */
1429 msm_qti_pp_send_eq_values(fe_id);
1430 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301431 if (!is_be_dai_extproc(i) &&
1432 (afe_get_port_type(msm_bedais[i].port_id) ==
1433 port_type) &&
1434 (msm_bedais[i].active) &&
1435 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1436 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301437 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301438
1439 /*
1440 * check if ADM needs to be configured with different
1441 * channel mapping than backend
1442 */
1443 if (!msm_bedais[i].adm_override_ch)
1444 channels = msm_bedais[i].channel;
1445 else
1446 channels = msm_bedais[i].adm_override_ch;
1447
1448 bit_width = msm_routing_get_bit_width(
1449 msm_bedais[i].format);
1450 app_type =
1451 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1452 if (app_type && is_lsm) {
1453 app_type_idx =
1454 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1455 sample_rate =
1456 fe_dai_app_type_cfg[fe_id][session_type][i]
1457 .sample_rate;
1458 bit_width =
1459 lsm_app_type_cfg[app_type_idx].bit_width;
1460 } else if (app_type) {
1461 app_type_idx =
1462 msm_pcm_routing_get_app_type_idx(
1463 app_type);
1464 sample_rate =
1465 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1466 bit_width =
1467 app_type_cfg[app_type_idx].bit_width;
1468 } else {
1469 sample_rate = msm_bedais[i].sample_rate;
1470 }
1471 acdb_dev_id =
1472 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1473 topology = msm_routing_get_adm_topology(fe_id,
1474 session_type,
1475 i);
1476 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1477 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001478 COMPRESSED_PASSTHROUGH_GEN)
1479 || (passthr_mode ==
1480 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301481 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1482 pr_debug("%s: Before adm open topology %d\n", __func__,
1483 topology);
1484
1485 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301486 adm_open(port_id, path_type, sample_rate,
1487 channels, topology, perf_mode,
1488 bit_width, app_type, acdb_dev_id,
1489 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301490 if ((copp_idx < 0) ||
1491 (copp_idx >= MAX_COPPS_PER_PORT)) {
1492 pr_err("%s:adm open failed coppid:%d\n",
1493 __func__, copp_idx);
1494 mutex_unlock(&routing_lock);
1495 return -EINVAL;
1496 }
1497 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1498 __func__, fe_id, session_type, i);
1499 set_bit(copp_idx,
1500 &session_copp_map[fe_id][session_type][i]);
1501
1502 if (msm_is_resample_needed(
1503 sample_rate,
1504 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301505 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301506 msm_bedais[i].sample_rate);
1507
1508 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1509 unsigned long copp =
1510 session_copp_map[fe_id][session_type][i];
1511 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301512 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301513 payload.copp_idx[num_copps] = j;
1514 payload.app_type[num_copps] =
1515 fe_dai_app_type_cfg
1516 [fe_id][session_type][i]
1517 .app_type;
1518 payload.acdb_dev_id[num_copps] =
1519 fe_dai_app_type_cfg
1520 [fe_id][session_type][i]
1521 .acdb_dev_id;
1522 payload.sample_rate[num_copps] =
1523 fe_dai_app_type_cfg
1524 [fe_id][session_type][i]
1525 .sample_rate;
1526 num_copps++;
1527 }
1528 }
1529 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001530 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301531 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301532 msm_routing_send_device_pp_params(port_id,
1533 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301534 }
1535 }
1536 if (num_copps) {
1537 payload.num_copps = num_copps;
1538 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1539 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1540 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1541 }
1542 mutex_unlock(&routing_lock);
1543 return 0;
1544}
1545
1546static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1547{
1548 u32 session_id;
1549
1550 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301551 case MSM_FRONTEND_DAI_QCHAT:
1552 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1553 break;
1554 case MSM_FRONTEND_DAI_VOIP:
1555 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1556 break;
1557 case MSM_FRONTEND_DAI_VOICEMMODE1:
1558 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1559 break;
1560 case MSM_FRONTEND_DAI_VOICEMMODE2:
1561 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1562 break;
1563 default:
1564 session_id = 0;
1565 }
1566
1567 pr_debug("%s session_id 0x%x", __func__, session_id);
1568 return session_id;
1569}
1570
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301571static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1572 int dspst_id, int stream_type)
1573{
1574 int copp_idx = 0;
1575 int sess_type = 0;
1576 int j = 0, be_id = 0;
1577 int ret = 0;
1578
1579 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1580 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1581 return 0;
1582 }
1583
1584 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1585 sess_type = SESSION_TYPE_RX;
1586 else
1587 sess_type = SESSION_TYPE_TX;
1588
1589 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1590 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1591 __func__, fe_id, sess_type);
1592 return 0;
1593 }
1594
1595 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1596 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1597 channel_mixer_v2[fe_id][sess_type].input_channel;
1598
1599 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1600 __func__, sess_type, fe_id,
1601 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1602 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1603 msm_bedais[be_id].active);
1604
1605 if ((msm_bedais[be_id].active) &&
1606 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1607 unsigned long copp =
1608 session_copp_map[fe_id][sess_type][be_id];
1609 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1610 if (test_bit(j, &copp)) {
1611 copp_idx = j;
1612 break;
1613 }
1614 }
1615
1616 ret = adm_programable_channel_mixer(
1617 msm_bedais[be_id].port_id,
1618 copp_idx, dspst_id, sess_type,
1619 &channel_mixer_v2[fe_id][sess_type], 0);
1620 }
1621
1622 return ret;
1623}
1624
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301625static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1626 int dspst_id, int stream_type)
1627{
1628 int copp_idx = 0;
1629 int sess_type = 0;
1630 int i = 0, j = 0, be_id;
1631 int ret = 0;
1632
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301633 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1634 dspst_id, stream_type);
1635 if (ret) {
1636 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1637 fe_id);
1638 return ret;
1639 }
1640
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301641 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1642 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1643 return 0;
1644 }
1645
1646 if (!(channel_mixer[fe_id].enable)) {
1647 pr_debug("%s: channel mixer not enabled for FE %d\n",
1648 __func__, fe_id);
1649 return 0;
1650 }
1651
1652 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1653 sess_type = SESSION_TYPE_RX;
1654 else
1655 sess_type = SESSION_TYPE_TX;
1656
1657 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1658 ++i) {
1659 be_id = channel_input[fe_id][i] - 1;
1660 channel_mixer[fe_id].input_channels[i] =
1661 msm_bedais[be_id].channel;
1662
1663 if ((msm_bedais[be_id].active) &&
1664 test_bit(fe_id,
1665 &msm_bedais[be_id].fe_sessions[0])) {
1666 unsigned long copp =
1667 session_copp_map[fe_id][sess_type][be_id];
1668 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1669 if (test_bit(j, &copp)) {
1670 copp_idx = j;
1671 break;
1672 }
1673 }
1674
1675 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1676 __func__,
1677 fe_id, be_id, msm_bedais[be_id].channel,
1678 copp_idx);
1679 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001680 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301681 copp_idx, dspst_id, sess_type,
1682 channel_mixer + fe_id, i);
1683 }
1684 }
1685
1686 return ret;
1687}
1688
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301689/**
1690 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1691 * setting during runtime.
1692 *
1693 * @be_id: backend index
1694 * @session_id: session index
1695 * @session_type: session type
1696 * @params: parameters for channel mixer
1697 *
1698 * Retuen: 0 for success, else error
1699 */
1700int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1701 int session_type,
1702 struct msm_pcm_channel_mixer *params)
1703{
1704 int rc = 0;
1705 int port_id, copp_idx = 0;
1706
1707 be_id--;
1708 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1709 pr_err("%s: invalid backend id %d\n", __func__,
1710 be_id);
1711 return -EINVAL;
1712 }
1713
1714 port_id = msm_bedais[be_id].port_id;
1715 copp_idx = adm_get_default_copp_idx(port_id);
1716 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1717 __func__, port_id, copp_idx, session_id);
1718
1719 if ((params->input_channel < 0) ||
1720 (params->input_channel > ADM_MAX_CHANNELS)) {
1721 pr_err("%s: invalid input channel %d\n", __func__,
1722 params->input_channel);
1723 return -EINVAL;
1724 }
1725
1726 if ((params->output_channel < 0) ||
1727 (params->output_channel > ADM_MAX_CHANNELS)) {
1728 pr_err("%s: invalid output channel %d\n", __func__,
1729 params->output_channel);
1730 return -EINVAL;
1731 }
1732
1733 params->input_channels[0] = params->input_channel;
1734
1735 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1736 __func__, session_type,
1737 params->override_in_ch_map,
1738 params->override_out_ch_map,
1739 msm_bedais[be_id].active);
1740
1741 rc = adm_programable_channel_mixer(port_id,
1742 copp_idx,
1743 session_id,
1744 session_type,
1745 params,
1746 0);
1747 if (rc) {
1748 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1749 rc = -EINVAL;
1750 }
1751 return rc;
1752}
1753EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1754
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301755int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1756 int dspst_id, int stream_type)
1757{
1758 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1759 struct route_payload payload;
1760 u32 channels, sample_rate;
1761 uint16_t bits_per_sample = 16;
1762 uint32_t passthr_mode = LEGACY_PCM;
1763 int ret = 0;
1764
1765 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1766 /* bad ID assigned in machine driver */
1767 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1768 return -EINVAL;
1769 }
1770
1771 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1772 session_type = SESSION_TYPE_RX;
1773 path_type = ADM_PATH_PLAYBACK;
1774 port_type = MSM_AFE_PORT_TYPE_RX;
1775 } else {
1776 session_type = SESSION_TYPE_TX;
1777 path_type = ADM_PATH_LIVE_REC;
1778 port_type = MSM_AFE_PORT_TYPE_TX;
1779 }
1780
1781 mutex_lock(&routing_lock);
1782
1783 payload.num_copps = 0; /* only RX needs to use payload */
1784 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1785 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301786 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301787
1788 /* re-enable EQ if active */
1789 msm_qti_pp_send_eq_values(fedai_id);
1790 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1791 if (!is_be_dai_extproc(i) &&
1792 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1793 (msm_bedais[i].active) &&
1794 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1795 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301796 int port_id = get_port_id(msm_bedais[i].port_id);
1797
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301798 /*
1799 * check if ADM needs to be configured with different
1800 * channel mapping than backend
1801 */
1802 if (!msm_bedais[i].adm_override_ch)
1803 channels = msm_bedais[i].channel;
1804 else
1805 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301806
1807 bits_per_sample = msm_routing_get_bit_width(
1808 msm_bedais[i].format);
1809
1810 app_type =
1811 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1812 if (app_type) {
1813 app_type_idx =
1814 msm_pcm_routing_get_app_type_idx(app_type);
1815 sample_rate =
1816 fe_dai_app_type_cfg[fedai_id][session_type][i]
1817 .sample_rate;
1818 bits_per_sample =
1819 app_type_cfg[app_type_idx].bit_width;
1820 } else
1821 sample_rate = msm_bedais[i].sample_rate;
1822
1823 acdb_dev_id =
1824 fe_dai_app_type_cfg[fedai_id][session_type][i]
1825 .acdb_dev_id;
1826 topology = msm_routing_get_adm_topology(fedai_id,
1827 session_type,
1828 i);
Surendar Karkae7507512018-07-20 15:46:54 +05301829 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301830 sample_rate, channels, topology,
1831 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301832 app_type, acdb_dev_id,
1833 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301834 if ((copp_idx < 0) ||
1835 (copp_idx >= MAX_COPPS_PER_PORT)) {
1836 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001837 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301838 mutex_unlock(&routing_lock);
1839 return -EINVAL;
1840 }
1841 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1842 __func__, fedai_id, session_type, i);
1843 set_bit(copp_idx,
1844 &session_copp_map[fedai_id][session_type][i]);
1845
1846 if (msm_is_resample_needed(
1847 sample_rate,
1848 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301849 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301850 msm_bedais[i].sample_rate);
1851
1852 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1853 unsigned long copp =
1854 session_copp_map[fedai_id][session_type][i];
1855 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301856 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301857 payload.copp_idx[num_copps] = j;
1858 payload.app_type[num_copps] =
1859 fe_dai_app_type_cfg
1860 [fedai_id][session_type]
1861 [i].app_type;
1862 payload.acdb_dev_id[num_copps] =
1863 fe_dai_app_type_cfg
1864 [fedai_id][session_type]
1865 [i].acdb_dev_id;
1866 payload.sample_rate[num_copps] =
1867 fe_dai_app_type_cfg
1868 [fedai_id][session_type]
1869 [i].sample_rate;
1870 num_copps++;
1871 }
1872 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301873 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301874 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1875 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301876 }
1877 }
1878 if (num_copps) {
1879 payload.num_copps = num_copps;
1880 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1881 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1882 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1883 }
1884
1885 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1886 dspst_id, stream_type);
1887 mutex_unlock(&routing_lock);
1888 return ret;
1889}
1890
1891int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1892 int dspst_id, int stream_type,
1893 struct msm_pcm_routing_evt event_info)
1894{
1895 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1896 stream_type)) {
1897 pr_err("%s: failed to reg phy stream\n", __func__);
1898 return -EINVAL;
1899 }
1900
1901 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1902 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1903 else
1904 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1905 return 0;
1906}
1907
1908void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1909{
Surendar Karkae7507512018-07-20 15:46:54 +05301910 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301911 struct msm_pcm_routing_fdai_data *fdai;
1912
1913 if (!is_mm_lsm_fe_id(fedai_id)) {
1914 /* bad ID assigned in machine driver */
1915 pr_err("%s: bad MM ID\n", __func__);
1916 return;
1917 }
1918
1919 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1920 port_type = MSM_AFE_PORT_TYPE_RX;
1921 session_type = SESSION_TYPE_RX;
1922 path_type = ADM_PATH_PLAYBACK;
1923 } else {
1924 port_type = MSM_AFE_PORT_TYPE_TX;
1925 session_type = SESSION_TYPE_TX;
1926 path_type = ADM_PATH_LIVE_REC;
1927 }
1928
1929 mutex_lock(&routing_lock);
1930 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1931 if (!is_be_dai_extproc(i) &&
1932 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1933 (msm_bedais[i].active) &&
1934 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1935 int idx;
1936 unsigned long copp =
1937 session_copp_map[fedai_id][session_type][i];
1938 fdai = &fe_dai_map[fedai_id][session_type];
1939
1940 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1941 if (test_bit(idx, &copp))
1942 break;
1943
1944 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1945 pr_debug("%s: copp idx is invalid, exiting\n",
1946 __func__);
1947 continue;
1948 }
Surendar Karkae7507512018-07-20 15:46:54 +05301949 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301950 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301951 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001952 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301953 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301954 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1955 __func__, copp, fedai_id, session_type, i);
1956 clear_bit(idx,
1957 &session_copp_map[fedai_id][session_type][i]);
1958 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1959 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1960 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301961 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301962 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301963 }
1964 }
1965
1966 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1967 fe_dai_map[fedai_id][session_type].be_srate = 0;
1968 mutex_unlock(&routing_lock);
1969}
1970
1971/* Check if FE/BE route is set */
1972static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1973{
1974 bool rc = false;
1975
1976 if (!is_mm_lsm_fe_id(fe_id)) {
1977 /* recheck FE ID in the mixer control defined in this file */
1978 pr_err("%s: bad MM ID\n", __func__);
1979 return rc;
1980 }
1981
1982 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1983 rc = true;
1984
1985 return rc;
1986}
1987
1988static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1989{
1990 int session_type, path_type, topology;
1991 u32 channels, sample_rate;
1992 uint16_t bits_per_sample = 16;
1993 struct msm_pcm_routing_fdai_data *fdai;
1994 uint32_t passthr_mode;
1995 bool is_lsm;
1996
1997 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1998
1999 if (!is_mm_lsm_fe_id(val)) {
2000 /* recheck FE ID in the mixer control defined in this file */
2001 pr_err("%s: bad MM ID\n", __func__);
2002 return;
2003 }
2004
2005 if (!route_check_fe_id_adm_support(val)) {
2006 /* ignore adm open if not supported for fe_id */
2007 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
Meng Wang6d8ecdd2019-04-11 11:06:47 +08002008 if (set)
2009 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2010 else
2011 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302012 return;
2013 }
2014
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302015 session_type =
2016 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
2017 SESSION_TYPE_RX : SESSION_TYPE_TX;
2018 fdai = &fe_dai_map[val][session_type];
2019 passthr_mode = fdai->passthr_mode;
2020 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302021 if (passthr_mode != LEGACY_PCM)
2022 path_type = ADM_PATH_COMPRESSED_RX;
2023 else
2024 path_type = ADM_PATH_PLAYBACK;
2025 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002026 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302027 path_type = ADM_PATH_COMPRESSED_TX;
2028 else
2029 path_type = ADM_PATH_LIVE_REC;
2030 }
2031 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2032 (val <= MSM_FRONTEND_DAI_LSM8);
2033
2034 mutex_lock(&routing_lock);
2035 if (set) {
2036 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2037 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2038 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2039 voc_start_playback(set, msm_bedais[reg].port_id);
2040
2041 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302042 if (msm_bedais[reg].active && fdai->strm_id !=
2043 INVALID_SESSION) {
2044 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302045 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302046 /*
2047 * check if ADM needs to be configured with different
2048 * channel mapping than backend
2049 */
2050 if (!msm_bedais[reg].adm_override_ch)
2051 channels = msm_bedais[reg].channel;
2052 else
2053 channels = msm_bedais[reg].adm_override_ch;
2054 if (session_type == SESSION_TYPE_TX &&
2055 fdai->be_srate &&
2056 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2057 pr_debug("%s: flush strm %d diff BE rates\n",
2058 __func__, fdai->strm_id);
2059
2060 if (fdai->event_info.event_func)
2061 fdai->event_info.event_func(
2062 MSM_PCM_RT_EVT_BUF_RECFG,
2063 fdai->event_info.priv_data);
2064 fdai->be_srate = 0; /* might not need it */
2065 }
2066
2067 bits_per_sample = msm_routing_get_bit_width(
2068 msm_bedais[reg].format);
2069
2070 app_type =
2071 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2072 if (app_type && is_lsm) {
2073 app_type_idx =
2074 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2075 sample_rate =
2076 fe_dai_app_type_cfg[val][session_type][reg]
2077 .sample_rate;
2078 bits_per_sample =
2079 lsm_app_type_cfg[app_type_idx].bit_width;
2080 } else if (app_type) {
2081 app_type_idx =
2082 msm_pcm_routing_get_app_type_idx(app_type);
2083 sample_rate =
2084 fe_dai_app_type_cfg[val][session_type][reg]
2085 .sample_rate;
2086 bits_per_sample =
2087 app_type_cfg[app_type_idx].bit_width;
2088 } else
2089 sample_rate = msm_bedais[reg].sample_rate;
2090
2091 topology = msm_routing_get_adm_topology(val,
2092 session_type,
2093 reg);
2094 acdb_dev_id =
2095 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302096 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302097 sample_rate, channels, topology,
2098 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302099 app_type, acdb_dev_id,
2100 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302101 if ((copp_idx < 0) ||
2102 (copp_idx >= MAX_COPPS_PER_PORT)) {
2103 pr_err("%s: adm open failed\n", __func__);
2104 mutex_unlock(&routing_lock);
2105 return;
2106 }
2107 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2108 __func__, val, session_type, reg);
2109 set_bit(copp_idx,
2110 &session_copp_map[val][session_type][reg]);
2111
2112 if (msm_is_resample_needed(
2113 sample_rate,
2114 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302115 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302116 msm_bedais[reg].sample_rate);
2117
2118 if (session_type == SESSION_TYPE_RX &&
2119 fdai->event_info.event_func)
2120 fdai->event_info.event_func(
2121 MSM_PCM_RT_EVT_DEVSWITCH,
2122 fdai->event_info.priv_data);
2123
2124 msm_pcm_routing_build_matrix(val, session_type,
2125 path_type,
2126 fdai->perf_mode,
2127 passthr_mode);
2128 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2129 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302130 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2131 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302132 }
2133 } else {
2134 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2135 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2136 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2137 voc_start_playback(set, msm_bedais[reg].port_id);
2138 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302139 if (msm_bedais[reg].active && fdai->strm_id !=
2140 INVALID_SESSION) {
2141 int idx;
2142 int port_id;
2143 unsigned long copp =
2144 session_copp_map[val][session_type][reg];
2145 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2146 if (test_bit(idx, &copp))
2147 break;
2148
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002149 if (idx >= MAX_COPPS_PER_PORT) {
2150 pr_debug("%s: copp idx is invalid, exiting\n",
2151 __func__);
2152 mutex_unlock(&routing_lock);
2153 return;
2154 }
Surendar Karkae7507512018-07-20 15:46:54 +05302155 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302156 topology = adm_get_topology_for_port_copp_idx(port_id,
2157 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002158 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302159 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302160 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2161 __func__, copp, val, session_type, reg,
2162 topology);
2163 clear_bit(idx,
2164 &session_copp_map[val][session_type][reg]);
2165 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2166 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2167 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2168 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302169 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302170 msm_pcm_routing_build_matrix(val, session_type,
2171 path_type,
2172 fdai->perf_mode,
2173 passthr_mode);
2174 }
2175 }
2176 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2177 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2178 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2179
2180 mutex_unlock(&routing_lock);
2181}
2182
2183static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2184 struct snd_ctl_elem_value *ucontrol)
2185{
2186 struct soc_mixer_control *mc =
2187 (struct soc_mixer_control *)kcontrol->private_value;
2188
Meng Wang05d5e9a2018-03-28 16:45:03 +08002189 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302190 ucontrol->value.integer.value[0] = 1;
2191 else
2192 ucontrol->value.integer.value[0] = 0;
2193
Meng Wang05d5e9a2018-03-28 16:45:03 +08002194 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302195 ucontrol->value.integer.value[0]);
2196
2197 return 0;
2198}
2199
2200static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2201 struct snd_ctl_elem_value *ucontrol)
2202{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302203 struct snd_soc_dapm_widget *widget =
2204 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302205 struct soc_mixer_control *mc =
2206 (struct soc_mixer_control *)kcontrol->private_value;
2207 struct snd_soc_dapm_update *update = NULL;
2208
2209 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002210 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2211 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302212 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2213 update);
2214 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002215 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2216 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302217 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2218 update);
2219 }
2220
2221 return 1;
2222}
2223
2224static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2225 struct snd_ctl_elem_value *ucontrol)
2226{
2227 struct soc_mixer_control *mc =
2228 (struct soc_mixer_control *)kcontrol->private_value;
2229
Meng Wang05d5e9a2018-03-28 16:45:03 +08002230 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302231 ucontrol->value.integer.value[0] = 1;
2232 else
2233 ucontrol->value.integer.value[0] = 0;
2234
Meng Wang05d5e9a2018-03-28 16:45:03 +08002235 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302236 ucontrol->value.integer.value[0]);
2237
2238 return 0;
2239}
2240
2241static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2242 struct snd_ctl_elem_value *ucontrol)
2243{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302244 struct snd_soc_dapm_widget *widget =
2245 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302246 struct soc_mixer_control *mc =
2247 (struct soc_mixer_control *)kcontrol->private_value;
2248 struct snd_soc_dapm_update *update = NULL;
2249
Meng Wang05d5e9a2018-03-28 16:45:03 +08002250 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302251 ucontrol->value.integer.value[0]);
2252
2253 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002254 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2255 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302256 snd_soc_dapm_mixer_update_power(widget->dapm,
2257 kcontrol, 1, update);
2258 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002259 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2260 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302261 snd_soc_dapm_mixer_update_power(widget->dapm,
2262 kcontrol, 0, update);
2263 }
2264
2265 return 1;
2266}
2267
2268static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2269{
2270 u32 session_id = 0;
2271 u16 path_type;
2272 struct media_format_info voc_be_media_format;
2273
2274 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2275
2276 session_id = msm_pcm_routing_get_voc_sessionid(val);
2277
2278 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2279 __func__, val, session_id);
2280
2281 mutex_lock(&routing_lock);
2282
2283 if (set)
2284 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2285 else
2286 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2287
2288 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2289 afe_get_port_type(msm_bedais[reg].port_id) ==
2290 MSM_AFE_PORT_TYPE_RX) {
2291 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2292 __func__, set, msm_bedais[reg].port_id);
2293 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2294 }
2295
2296 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2297 MSM_AFE_PORT_TYPE_RX)
2298 path_type = RX_PATH;
2299 else
2300 path_type = TX_PATH;
2301
2302 if (set) {
2303 if (msm_bedais[reg].active) {
2304 voc_set_route_flag(session_id, path_type, 1);
2305
2306 memset(&voc_be_media_format, 0,
2307 sizeof(struct media_format_info));
2308
2309 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2310 voc_be_media_format.num_channels =
2311 msm_bedais[reg].channel;
2312 voc_be_media_format.sample_rate =
2313 msm_bedais[reg].sample_rate;
2314 voc_be_media_format.bits_per_sample =
2315 msm_bedais[reg].format;
2316 /* Defaulting this to 1 for voice call usecases */
2317 voc_be_media_format.channel_mapping[0] = 1;
2318
2319 voc_set_device_config(session_id, path_type,
2320 &voc_be_media_format);
2321
2322 if (voc_get_route_flag(session_id, TX_PATH) &&
2323 voc_get_route_flag(session_id, RX_PATH))
2324 voc_enable_device(session_id);
2325 } else {
2326 pr_debug("%s BE is not active\n", __func__);
2327 }
2328 } else {
2329 voc_set_route_flag(session_id, path_type, 0);
2330 voc_disable_device(session_id);
2331 }
2332
2333 mutex_unlock(&routing_lock);
2334
2335}
2336
2337static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2338 struct snd_ctl_elem_value *ucontrol)
2339{
2340 struct soc_mixer_control *mc =
2341 (struct soc_mixer_control *)kcontrol->private_value;
2342
2343 mutex_lock(&routing_lock);
2344
Meng Wang05d5e9a2018-03-28 16:45:03 +08002345 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302346 ucontrol->value.integer.value[0] = 1;
2347 else
2348 ucontrol->value.integer.value[0] = 0;
2349
2350 mutex_unlock(&routing_lock);
2351
Meng Wang05d5e9a2018-03-28 16:45:03 +08002352 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302353 ucontrol->value.integer.value[0]);
2354
2355 return 0;
2356}
2357
2358static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2359 struct snd_ctl_elem_value *ucontrol)
2360{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302361 struct snd_soc_dapm_widget *widget =
2362 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302363 struct soc_mixer_control *mc =
2364 (struct soc_mixer_control *)kcontrol->private_value;
2365 struct snd_soc_dapm_update *update = NULL;
2366
2367 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002368 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302369 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2370 update);
2371 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002372 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302373 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2374 update);
2375 }
2376
2377 return 1;
2378}
2379
2380static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2381 struct snd_ctl_elem_value *ucontrol)
2382{
2383 struct soc_mixer_control *mc =
2384 (struct soc_mixer_control *)kcontrol->private_value;
2385
2386 mutex_lock(&routing_lock);
2387
Meng Wang05d5e9a2018-03-28 16:45:03 +08002388 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302389 ucontrol->value.integer.value[0] = 1;
2390 else
2391 ucontrol->value.integer.value[0] = 0;
2392
2393 mutex_unlock(&routing_lock);
2394
Meng Wang05d5e9a2018-03-28 16:45:03 +08002395 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302396 ucontrol->value.integer.value[0]);
2397
2398 return 0;
2399}
2400
2401static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2402 struct snd_ctl_elem_value *ucontrol)
2403{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302404 struct snd_soc_dapm_widget *widget =
2405 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302406 struct soc_mixer_control *mc =
2407 (struct soc_mixer_control *)kcontrol->private_value;
2408 struct snd_soc_dapm_update *update = NULL;
2409
2410 if (ucontrol->value.integer.value[0]) {
2411 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002412 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302413 mutex_unlock(&routing_lock);
2414
2415 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2416 update);
2417 } else {
2418 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002419 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302420 mutex_unlock(&routing_lock);
2421
2422 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2423 update);
2424 }
2425
Meng Wang05d5e9a2018-03-28 16:45:03 +08002426 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302427 ucontrol->value.integer.value[0]);
2428
2429 return 1;
2430}
2431
2432/*
2433 * Return the mapping between port ID and backend ID to enable the AFE callback
2434 * to determine the acdb_dev_id from the port id
2435 */
2436int msm_pcm_get_be_id_from_port_id(int port_id)
2437{
2438 int i;
2439 int be_id = -EINVAL;
2440
2441 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2442 if (msm_bedais[i].port_id == port_id) {
2443 be_id = i;
2444 break;
2445 }
2446 }
2447
2448 return be_id;
2449}
2450
2451/*
2452 * Return the registered dev_acdb_id given a port ID to enable identifying the
2453 * correct AFE calibration information by comparing the header information.
2454 */
2455static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2456{
2457 int acdb_id = -EINVAL;
2458 int i = 0;
2459 int session;
2460 int port_type = afe_get_port_type(port_id);
2461 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2462
2463 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2464 __func__, port_id, be_id, port_type);
2465
2466 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2467 session = SESSION_TYPE_TX;
2468 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2469 session = SESSION_TYPE_RX;
2470 } else {
2471 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2472 acdb_id = -EINVAL;
2473 goto exit;
2474 }
2475
2476 if (be_id < 0) {
2477 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2478 goto exit;
2479 }
2480
2481 mutex_lock(&routing_lock);
2482 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2483 MSM_FRONTEND_DAI_MAX);
2484 if (i < MSM_FRONTEND_DAI_MAX)
2485 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2486
2487 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2488 __func__, i, session, be_id, acdb_id);
2489 mutex_unlock(&routing_lock);
2490exit:
2491 return acdb_id;
2492}
2493
2494static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2495 struct snd_ctl_elem_value *ucontrol)
2496{
2497 ucontrol->value.integer.value[0] = fm_switch_enable;
2498 pr_debug("%s: FM Switch enable %ld\n", __func__,
2499 ucontrol->value.integer.value[0]);
2500 return 0;
2501}
2502
2503static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2504 struct snd_ctl_elem_value *ucontrol)
2505{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302506 struct snd_soc_dapm_widget *widget =
2507 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302508 struct snd_soc_dapm_update *update = NULL;
2509
2510 pr_debug("%s: FM Switch enable %ld\n", __func__,
2511 ucontrol->value.integer.value[0]);
2512 if (ucontrol->value.integer.value[0])
2513 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2514 update);
2515 else
2516 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2517 update);
2518 fm_switch_enable = ucontrol->value.integer.value[0];
2519 return 1;
2520}
2521
2522static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2523 struct snd_ctl_elem_value *ucontrol)
2524{
2525 ucontrol->value.integer.value[0] = hfp_switch_enable;
2526 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2527 ucontrol->value.integer.value[0]);
2528 return 0;
2529}
2530
2531static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2532 struct snd_ctl_elem_value *ucontrol)
2533{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302534 struct snd_soc_dapm_widget *widget =
2535 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302536 struct snd_soc_dapm_update *update = NULL;
2537
2538 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2539 ucontrol->value.integer.value[0]);
2540 if (ucontrol->value.integer.value[0])
2541 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2542 1, update);
2543 else
2544 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2545 0, update);
2546 hfp_switch_enable = ucontrol->value.integer.value[0];
2547 return 1;
2548}
2549
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002550static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2551 struct snd_ctl_elem_value *ucontrol)
2552{
2553 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2554 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2555 ucontrol->value.integer.value[0]);
2556 return 0;
2557}
2558
2559static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2560 struct snd_ctl_elem_value *ucontrol)
2561{
2562 struct snd_soc_dapm_widget *widget =
2563 snd_soc_dapm_kcontrol_widget(kcontrol);
2564 struct snd_soc_dapm_update *update = NULL;
2565
2566 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2567 ucontrol->value.integer.value[0]);
2568 a2dp_switch_enable = ucontrol->value.integer.value[0];
2569 if (a2dp_switch_enable)
2570 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2571 1, update);
2572 else
2573 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2574 0, update);
2575 return 1;
2576}
2577
Zhou Songcaa541d2019-02-19 18:37:47 +08002578static int msm_routing_sco_switch_mixer_get(struct snd_kcontrol *kcontrol,
2579 struct snd_ctl_elem_value *ucontrol)
2580{
2581 ucontrol->value.integer.value[0] = sco_switch_enable;
2582 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2583 ucontrol->value.integer.value[0]);
2584 return 0;
2585}
2586
2587static int msm_routing_sco_switch_mixer_put(struct snd_kcontrol *kcontrol,
2588 struct snd_ctl_elem_value *ucontrol)
2589{
2590 struct snd_soc_dapm_widget *widget =
2591 snd_soc_dapm_kcontrol_widget(kcontrol);
2592 struct snd_soc_dapm_update *update = NULL;
2593
2594 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2595 ucontrol->value.integer.value[0]);
2596 sco_switch_enable = ucontrol->value.integer.value[0];
2597 if (sco_switch_enable)
2598 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2599 1, update);
2600 else
2601 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2602 0, update);
2603 return 1;
2604}
2605
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302606static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2607 struct snd_ctl_elem_value *ucontrol)
2608{
2609 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2610 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2611 ucontrol->value.integer.value[0]);
2612 return 0;
2613}
2614
2615static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2616 struct snd_ctl_elem_value *ucontrol)
2617{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302618 struct snd_soc_dapm_widget *widget =
2619 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302620 struct snd_soc_dapm_update *update = NULL;
2621
2622 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2623 ucontrol->value.integer.value[0]);
2624 if (ucontrol->value.integer.value[0])
2625 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2626 update);
2627 else
2628 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2629 update);
2630 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2631 return 1;
2632}
2633
2634static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2635 struct snd_ctl_elem_value *ucontrol)
2636{
2637 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2638 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2639 ucontrol->value.integer.value[0]);
2640 return 0;
2641}
2642
2643static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2644 struct snd_ctl_elem_value *ucontrol)
2645{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302646 struct snd_soc_dapm_widget *widget =
2647 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302648 struct snd_soc_dapm_update *update = NULL;
2649
2650 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2651 ucontrol->value.integer.value[0]);
2652 if (ucontrol->value.integer.value[0])
2653 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2654 update);
2655 else
2656 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2657 update);
2658 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2659 return 1;
2660}
2661
2662static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2663 struct snd_ctl_elem_value *ucontrol)
2664{
2665 ucontrol->value.integer.value[0] = usb_switch_enable;
2666 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2667 ucontrol->value.integer.value[0]);
2668 return 0;
2669}
2670
2671static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2672 struct snd_ctl_elem_value *ucontrol)
2673{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302674 struct snd_soc_dapm_widget *widget =
2675 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302676 struct snd_soc_dapm_update *update = NULL;
2677
2678 pr_debug("%s: USB Switch enable %ld\n", __func__,
2679 ucontrol->value.integer.value[0]);
2680 if (ucontrol->value.integer.value[0])
2681 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2682 1, update);
2683 else
2684 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2685 0, update);
2686 usb_switch_enable = ucontrol->value.integer.value[0];
2687 return 1;
2688}
2689
2690static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2691 struct snd_ctl_elem_value *ucontrol)
2692{
2693 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2694 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2695 ucontrol->value.integer.value[0]);
2696 return 0;
2697}
2698
2699static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2700 struct snd_ctl_elem_value *ucontrol)
2701{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302702 struct snd_soc_dapm_widget *widget =
2703 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302704 struct snd_soc_dapm_update *update = NULL;
2705
2706 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2707 ucontrol->value.integer.value[0]);
2708 if (ucontrol->value.integer.value[0])
2709 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2710 update);
2711 else
2712 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2713 update);
2714 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2715 return 1;
2716}
2717
2718static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2719 struct snd_ctl_elem_value *ucontrol)
2720{
2721 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2722 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2723 ucontrol->value.integer.value[0]);
2724 return 0;
2725}
2726
2727static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2728 struct snd_ctl_elem_value *ucontrol)
2729{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302730 struct snd_soc_dapm_widget *widget =
2731 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302732 struct snd_soc_dapm_update *update = NULL;
2733
2734 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2735 ucontrol->value.integer.value[0]);
2736 if (ucontrol->value.integer.value[0])
2737 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2738 update);
2739 else
2740 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2741 update);
2742 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2743 return 1;
2744}
2745
2746static int msm_routing_get_tert_mi2s_switch_mixer(
2747 struct snd_kcontrol *kcontrol,
2748 struct snd_ctl_elem_value *ucontrol)
2749{
2750 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2751 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2752 ucontrol->value.integer.value[0]);
2753 return 0;
2754}
2755
2756static int msm_routing_put_tert_mi2s_switch_mixer(
2757 struct snd_kcontrol *kcontrol,
2758 struct snd_ctl_elem_value *ucontrol)
2759{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302760 struct snd_soc_dapm_widget *widget =
2761 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302762 struct snd_soc_dapm_update *update = NULL;
2763
2764 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2765 ucontrol->value.integer.value[0]);
2766 if (ucontrol->value.integer.value[0])
2767 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2768 update);
2769 else
2770 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2771 update);
2772 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2773 return 1;
2774}
2775
2776static int msm_routing_get_quat_mi2s_switch_mixer(
2777 struct snd_kcontrol *kcontrol,
2778 struct snd_ctl_elem_value *ucontrol)
2779{
2780 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2781 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2782 ucontrol->value.integer.value[0]);
2783 return 0;
2784}
2785
2786static int msm_routing_put_quat_mi2s_switch_mixer(
2787 struct snd_kcontrol *kcontrol,
2788 struct snd_ctl_elem_value *ucontrol)
2789{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302790 struct snd_soc_dapm_widget *widget =
2791 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302792 struct snd_soc_dapm_update *update = NULL;
2793
2794 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2795 ucontrol->value.integer.value[0]);
2796 if (ucontrol->value.integer.value[0])
2797 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2798 update);
2799 else
2800 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2801 update);
2802 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2803 return 1;
2804}
2805
Rohit Kumara5077932017-09-10 22:05:05 +05302806static int msm_routing_get_quin_mi2s_switch_mixer(
2807 struct snd_kcontrol *kcontrol,
2808 struct snd_ctl_elem_value *ucontrol)
2809{
2810 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2811 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2812 ucontrol->value.integer.value[0]);
2813 return 0;
2814}
2815
2816static int msm_routing_put_quin_mi2s_switch_mixer(
2817 struct snd_kcontrol *kcontrol,
2818 struct snd_ctl_elem_value *ucontrol)
2819{
2820 struct snd_soc_dapm_widget *widget =
2821 snd_soc_dapm_kcontrol_widget(kcontrol);
2822 struct snd_soc_dapm_update *update = NULL;
2823
2824 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2825 ucontrol->value.integer.value[0]);
2826 if (ucontrol->value.integer.value[0])
2827 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2828 update);
2829 else
2830 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2831 update);
2832 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2833 return 1;
2834}
2835
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302836static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2837 struct snd_ctl_elem_value *ucontrol)
2838{
2839 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2840 pr_debug("%s: FM Switch enable %ld\n", __func__,
2841 ucontrol->value.integer.value[0]);
2842 return 0;
2843}
2844
2845static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2846 struct snd_ctl_elem_value *ucontrol)
2847{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302848 struct snd_soc_dapm_widget *widget =
2849 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302850 struct snd_soc_dapm_update *update = NULL;
2851
2852 pr_debug("%s: FM Switch enable %ld\n", __func__,
2853 ucontrol->value.integer.value[0]);
2854 if (ucontrol->value.integer.value[0])
2855 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2856 update);
2857 else
2858 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2859 update);
2860 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2861 return 1;
2862}
2863
2864static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2865 struct snd_ctl_elem_value *ucontrol)
2866{
2867 ucontrol->value.integer.value[0] = lsm_port_index;
2868 return 0;
2869}
2870
2871static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2872 struct snd_ctl_elem_value *ucontrol)
2873{
2874 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2875 int mux = ucontrol->value.enumerated.item[0];
2876 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2877
2878 if (mux >= e->items) {
2879 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2880 return -EINVAL;
2881 }
2882
2883 pr_debug("%s: LSM enable %ld\n", __func__,
2884 ucontrol->value.integer.value[0]);
2885 switch (ucontrol->value.integer.value[0]) {
2886 case 1:
2887 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2888 break;
2889 case 2:
2890 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2891 break;
2892 case 3:
2893 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2894 break;
2895 case 4:
2896 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2897 break;
2898 case 5:
2899 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2900 break;
2901 case 6:
2902 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2903 break;
2904 case 7:
2905 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2906 break;
2907 case 8:
2908 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2909 break;
2910 case 9:
2911 lsm_port = ADM_LSM_PORT_ID;
2912 break;
2913 case 10:
2914 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2915 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302916 case 11:
2917 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2918 break;
2919 case 12:
2920 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2921 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302922 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002923 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302924 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302925 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002926 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2927 break;
2928 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302929 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2930 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302931 default:
2932 pr_err("Default lsm port");
2933 break;
2934 }
2935 set_lsm_port(lsm_port);
2936 lsm_port_index = ucontrol->value.integer.value[0];
2937
2938 return 0;
2939}
2940
2941static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2942 struct snd_ctl_elem_value *ucontrol)
2943{
2944 int i;
2945 u16 port_id;
2946 enum afe_mad_type mad_type;
2947
2948 pr_debug("%s: enter\n", __func__);
2949 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2950 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2951 strlen(lsm_port_text[i])))
2952 break;
2953
2954 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002955 pr_warn("%s: Invalid id name %s\n", __func__,
2956 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302957 return -EINVAL;
2958 }
2959
2960 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2961
2962 /*Check for Tertiary/Quaternary/INT3 TX port*/
2963 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2964 strlen(lsm_port_text[7])))
2965 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2966
2967 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2968 strlen(lsm_port_text[8])))
2969 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2970
2971 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2972 strlen(lsm_port_text[10])))
2973 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2974
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302975 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2976 strlen(lsm_port_text[13])))
2977 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2978
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302979 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2980 strlen(lsm_port_text[14])))
2981 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2982
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302983 mad_type = afe_port_get_mad_type(port_id);
2984 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2985 mad_type);
2986 switch (mad_type) {
2987 case MAD_HW_NONE:
2988 ucontrol->value.integer.value[0] = MADNONE;
2989 break;
2990 case MAD_HW_AUDIO:
2991 ucontrol->value.integer.value[0] = MADAUDIO;
2992 break;
2993 case MAD_HW_BEACON:
2994 ucontrol->value.integer.value[0] = MADBEACON;
2995 break;
2996 case MAD_HW_ULTRASOUND:
2997 ucontrol->value.integer.value[0] = MADULTRASOUND;
2998 break;
2999 case MAD_SW_AUDIO:
3000 ucontrol->value.integer.value[0] = MADSWAUDIO;
3001 break;
3002 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003003 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303004 return -EINVAL;
3005 }
3006 return 0;
3007}
3008
3009static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
3010 struct snd_ctl_elem_value *ucontrol)
3011{
3012 int i;
3013 u16 port_id;
3014 enum afe_mad_type mad_type;
3015
3016 pr_debug("%s: enter\n", __func__);
3017 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3018 if (strnstr(kcontrol->id.name, lsm_port_text[i],
3019 strlen(lsm_port_text[i])))
3020 break;
3021
3022 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003023 pr_warn("%s: Invalid id name %s\n", __func__,
3024 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303025 return -EINVAL;
3026 }
3027
3028 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3029 switch (ucontrol->value.integer.value[0]) {
3030 case MADNONE:
3031 mad_type = MAD_HW_NONE;
3032 break;
3033 case MADAUDIO:
3034 mad_type = MAD_HW_AUDIO;
3035 break;
3036 case MADBEACON:
3037 mad_type = MAD_HW_BEACON;
3038 break;
3039 case MADULTRASOUND:
3040 mad_type = MAD_HW_ULTRASOUND;
3041 break;
3042 case MADSWAUDIO:
3043 mad_type = MAD_SW_AUDIO;
3044 break;
3045 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003046 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303047 return -EINVAL;
3048 }
3049
3050 /*Check for Tertiary/Quaternary/INT3 TX port*/
3051 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3052 strlen(lsm_port_text[7])))
3053 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3054
3055 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3056 strlen(lsm_port_text[8])))
3057 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3058
3059 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3060 strlen(lsm_port_text[10])))
3061 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3062
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303063 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3064 strlen(lsm_port_text[13])))
3065 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3066
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303067 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3068 strlen(lsm_port_text[14])))
3069 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3070
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303071 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3072 mad_type);
3073 return afe_port_set_mad_type(port_id, mad_type);
3074}
3075
3076static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3077
3078static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
3079 adm_override_chs_text);
3080
3081static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3082{
3083 int backend_id;
3084
3085 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3086 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
3087 } else {
3088 pr_err("%s: unsupported backend id: %s",
3089 __func__, kcontrol->id.name);
3090 return -EINVAL;
3091 }
3092
3093 return backend_id;
3094}
3095static int msm_routing_adm_channel_config_get(
3096 struct snd_kcontrol *kcontrol,
3097 struct snd_ctl_elem_value *ucontrol)
3098{
3099 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3100
3101 if (backend_id >= 0) {
3102 mutex_lock(&routing_lock);
3103 ucontrol->value.integer.value[0] =
3104 msm_bedais[backend_id].adm_override_ch;
3105 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3106 ucontrol->value.integer.value[0], backend_id);
3107 mutex_unlock(&routing_lock);
3108 }
3109
3110 return 0;
3111}
3112
3113static int msm_routing_adm_channel_config_put(
3114 struct snd_kcontrol *kcontrol,
3115 struct snd_ctl_elem_value *ucontrol)
3116{
3117 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3118
3119 if (backend_id >= 0) {
3120 mutex_lock(&routing_lock);
3121 msm_bedais[backend_id].adm_override_ch =
3122 ucontrol->value.integer.value[0];
3123 pr_debug("%s:updating BE :%d adm channels: %d\n",
3124 __func__, backend_id,
3125 msm_bedais[backend_id].adm_override_ch);
3126 mutex_unlock(&routing_lock);
3127 }
3128
3129 return 0;
3130}
3131
3132static const struct snd_kcontrol_new adm_channel_config_controls[] = {
3133 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
3134 msm_routing_adm_channel_config_get,
3135 msm_routing_adm_channel_config_put),
3136};
3137
3138static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3139 struct snd_ctl_elem_value *ucontrol)
3140{
3141
3142 mutex_lock(&routing_lock);
3143 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3144 mutex_unlock(&routing_lock);
3145 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3146 ucontrol->value.integer.value[0]);
3147 return 0;
3148};
3149
3150static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3151 struct snd_ctl_elem_value *ucontrol)
3152{
3153 struct aanc_data aanc_info;
3154
3155 mutex_lock(&routing_lock);
3156 memset(&aanc_info, 0x00, sizeof(aanc_info));
3157 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3158 ucontrol->value.integer.value[0]);
3159 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3160 if (ucontrol->value.integer.value[0] == 0) {
3161 aanc_info.aanc_active = false;
3162 aanc_info.aanc_tx_port = 0;
3163 aanc_info.aanc_rx_port = 0;
3164 } else {
3165 aanc_info.aanc_active = true;
3166 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3167 aanc_info.aanc_tx_port =
3168 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3169 }
3170 afe_set_aanc_info(&aanc_info);
3171 mutex_unlock(&routing_lock);
3172 return 0;
3173};
3174static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3175 struct snd_ctl_elem_value *ucontrol)
3176{
3177 int idx = 0, shift = 0;
3178 struct soc_mixer_control *mc =
3179 (struct soc_mixer_control *)kcontrol->private_value;
3180
Meng Wang05d5e9a2018-03-28 16:45:03 +08003181 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3182 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303183
3184 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3185 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3186 return -EINVAL;
3187 }
3188
3189 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003190 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303191 ucontrol->value.integer.value[0] = 1;
3192 else
3193 ucontrol->value.integer.value[0] = 0;
3194
Meng Wang05d5e9a2018-03-28 16:45:03 +08003195 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303196 ucontrol->value.integer.value[0]);
3197
3198 return 0;
3199}
3200
3201static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3202 struct snd_ctl_elem_value *ucontrol)
3203{
3204 int idx = 0, shift = 0;
3205 struct soc_mixer_control *mc =
3206 (struct soc_mixer_control *)kcontrol->private_value;
3207
Meng Wang05d5e9a2018-03-28 16:45:03 +08003208 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3209 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303210
3211 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3212 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3213 return -EINVAL;
3214 }
3215
Meng Wang05d5e9a2018-03-28 16:45:03 +08003216 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3217 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303218 ucontrol->value.integer.value[0], idx, shift);
3219
3220 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003221 afe_loopback(1, msm_bedais[mc->shift].port_id,
3222 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303223 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003224 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303225 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003226 afe_loopback(0, msm_bedais[mc->shift].port_id,
3227 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303228 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003229 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303230 }
3231
3232 return 1;
3233}
3234
3235static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3236 struct snd_ctl_elem_value *ucontrol)
3237{
3238 u16 fe_id = 0;
3239
3240 fe_id = ((struct soc_mixer_control *)
3241 kcontrol->private_value)->shift;
3242 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3243 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3244 return -EINVAL;
3245 }
3246
3247 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3248
3249 return 0;
3250}
3251
3252static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3253 struct snd_ctl_elem_value *ucontrol)
3254{
3255 u16 fe_id = 0;
3256
3257 fe_id = ((struct soc_mixer_control *)
3258 kcontrol->private_value)->shift;
3259 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3260 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3261 return -EINVAL;
3262 }
3263
3264 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3265
3266 return 1;
3267}
3268
3269static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3270 struct snd_ctl_elem_value *ucontrol)
3271{
3272 u16 fe_id = 0;
3273
3274 fe_id = ((struct soc_multi_mixer_control *)
3275 kcontrol->private_value)->shift;
3276 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3277 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3278 return -EINVAL;
3279 }
3280
3281 ucontrol->value.integer.value[0] =
3282 channel_mixer[fe_id].output_channel;
3283 return 0;
3284}
3285
3286static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3287 struct snd_ctl_elem_value *ucontrol)
3288{
3289 u16 fe_id = 0;
3290
3291 fe_id = ((struct soc_multi_mixer_control *)
3292 kcontrol->private_value)->shift;
3293 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3294 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3295 return -EINVAL;
3296 }
3297
3298 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3299 fe_id,
3300 (unsigned int)(ucontrol->value.integer.value[0]));
3301 channel_mixer[fe_id].output_channel =
3302 (unsigned int)(ucontrol->value.integer.value[0]);
3303
3304 return 1;
3305}
3306
3307static const char *const ch_mixer[] = {"Disable", "Enable"};
3308
3309/* If new backend is added, need update this array */
3310static const char *const be_name[] = {
3311"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3312"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3313"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3314"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3315"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3316"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3317"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3318"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3319"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3320"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3321"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3322"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003323"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303324"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3325"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3326"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3327"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3328"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3329"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3330"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3331"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3332"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3333"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3334"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3335"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3336"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3337"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3338"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3339"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3340"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303341"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3342"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3343"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3344"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003345"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3346"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3347"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3348"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3349"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3350"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3351"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3352"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 -08003353"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 +05303354"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3355"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3356"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3357"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3358"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Meng Wangf016d302019-01-21 10:35:53 +08003359"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303360};
3361
3362static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3363 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3364static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3365 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3366static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3367 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3368static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3369 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3370
3371static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3372 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3373static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3374 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3375static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3376 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3377static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3378 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3379static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3380 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3381static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3382 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3383static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3384 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3385static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3386 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3387
3388static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3389 unsigned int channels,
3390 unsigned int items, const char *const names[])
3391{
3392 if (uinfo->value.enumerated.item >= items)
3393 uinfo->value.enumerated.item = items - 1;
3394
3395 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3396 sizeof(uinfo->value.enumerated.name),
3397 "ALSA: too long item name '%s'\n",
3398 names[uinfo->value.enumerated.item]);
3399 strlcpy(uinfo->value.enumerated.name,
3400 names[uinfo->value.enumerated.item],
3401 sizeof(uinfo->value.enumerated.name));
3402 return 0;
3403}
3404
3405static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3406 struct snd_ctl_elem_info *uinfo)
3407{
3408 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3409
3410 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3411 uinfo->count = 1;
3412
3413 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3414 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3415
3416 return 0;
3417}
3418static int msm_pcm_channel_mixer_get(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 pr_debug("%s: FE %d %s\n", __func__,
3431 fe_id,
3432 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3433 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3434 return 0;
3435}
3436
3437static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3438 struct snd_ctl_elem_value *ucontrol)
3439{
3440 u16 fe_id = 0;
3441
3442 fe_id = ((struct soc_enum *)
3443 kcontrol->private_value)->shift_l;
3444 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3445 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3446 return -EINVAL;
3447 }
3448
3449 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3450 pr_debug("%s: %s FE %d\n", __func__,
3451 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3452 fe_id);
3453 return 0;
3454}
3455
3456static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3457 struct snd_ctl_elem_info *uinfo)
3458{
3459 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3460
3461 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3462 uinfo->count = 1;
3463
3464 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3465 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3466
3467 return 0;
3468}
3469
3470static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3471 struct snd_ctl_elem_value *ucontrol)
3472{
3473 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3474 u16 fe_id = 0, in_ch = 0;
3475
3476 fe_id = e->shift_l;
3477 in_ch = e->shift_r;
3478 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3479 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3480 return -EINVAL;
3481 }
3482 if (in_ch >= ADM_MAX_CHANNELS) {
3483 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3484 return -EINVAL;
3485 }
3486
3487 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3488 return 1;
3489}
3490
3491static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3492 struct snd_ctl_elem_value *ucontrol)
3493{
3494 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3495 u16 fe_id = 0, in_ch = 0;
3496
3497 fe_id = e->shift_l;
3498 in_ch = e->shift_r;
3499 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3500 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3501 return -EINVAL;
3502 }
3503 if (in_ch >= ADM_MAX_CHANNELS) {
3504 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3505 return -EINVAL;
3506 }
3507
3508 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3509 return 1;
3510}
3511
3512
3513static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3514 struct snd_ctl_elem_info *uinfo)
3515{
3516 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3517 uinfo->count = ADM_MAX_CHANNELS;
3518 uinfo->value.integer.min = 0;
3519 uinfo->value.integer.max = WEIGHT_0_DB;
3520
3521 return 0;
3522}
3523
3524static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3525 struct snd_ctl_elem_value *ucontrol)
3526{
3527 u16 fe_id = 0, out_ch = 0;
3528 int i, weight;
3529
3530 fe_id = ((struct soc_multi_mixer_control *)
3531 kcontrol->private_value)->shift;
3532 out_ch = ((struct soc_multi_mixer_control *)
3533 kcontrol->private_value)->rshift;
3534 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3535 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3536 return -EINVAL;
3537 }
3538 if (out_ch >= ADM_MAX_CHANNELS) {
3539 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3540 return -EINVAL;
3541 }
3542
3543 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3544 __func__, fe_id,
3545 ucontrol->value.integer.value[0],
3546 ucontrol->value.integer.value[1],
3547 ucontrol->value.integer.value[2],
3548 ucontrol->value.integer.value[3],
3549 ucontrol->value.integer.value[4],
3550 ucontrol->value.integer.value[5],
3551 ucontrol->value.integer.value[6],
3552 ucontrol->value.integer.value[7]);
3553
3554 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3555 weight = ucontrol->value.integer.value[i];
3556 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3557 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3558 __func__, fe_id, out_ch, i,
3559 channel_mixer[fe_id].channel_weight[out_ch][i]);
3560 }
3561
3562 return 0;
3563}
3564
3565static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3566 struct snd_ctl_elem_value *ucontrol)
3567{
3568 u16 fe_id = 0, out_ch = 0;
3569 int i;
3570
3571 fe_id = ((struct soc_multi_mixer_control *)
3572 kcontrol->private_value)->shift;
3573 out_ch = ((struct soc_multi_mixer_control *)
3574 kcontrol->private_value)->rshift;
3575 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3576 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3577 return -EINVAL;
3578 }
3579 if (out_ch >= ADM_MAX_CHANNELS) {
3580 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3581 return -EINVAL;
3582 }
3583
3584 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3585 ucontrol->value.integer.value[i] =
3586 channel_mixer[fe_id].channel_weight[out_ch][i];
3587
3588 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3589 __func__, fe_id,
3590 ucontrol->value.integer.value[0],
3591 ucontrol->value.integer.value[1],
3592 ucontrol->value.integer.value[2],
3593 ucontrol->value.integer.value[3],
3594 ucontrol->value.integer.value[4],
3595 ucontrol->value.integer.value[5],
3596 ucontrol->value.integer.value[6],
3597 ucontrol->value.integer.value[7]);
3598
3599 return 0;
3600}
3601
3602static const struct snd_kcontrol_new channel_mixer_controls[] = {
3603 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3604 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3605 msm_pcm_get_channel_rule_index,
3606 msm_pcm_put_channel_rule_index),
3607 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3608 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3609 msm_pcm_get_channel_rule_index,
3610 msm_pcm_put_channel_rule_index),
3611 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3612 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3613 msm_pcm_get_channel_rule_index,
3614 msm_pcm_put_channel_rule_index),
3615 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3616 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3617 msm_pcm_get_channel_rule_index,
3618 msm_pcm_put_channel_rule_index),
3619 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3620 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3621 msm_pcm_get_channel_rule_index,
3622 msm_pcm_put_channel_rule_index),
3623 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3624 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3625 msm_pcm_get_channel_rule_index,
3626 msm_pcm_put_channel_rule_index),
3627
3628 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05303629 MSM_FRONTEND_DAI_MULTIMEDIA1, 10, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303630 msm_pcm_get_out_chs,
3631 msm_pcm_put_out_chs),
3632 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3633 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3634 msm_pcm_get_out_chs,
3635 msm_pcm_put_out_chs),
3636 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3637 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3638 msm_pcm_get_out_chs,
3639 msm_pcm_put_out_chs),
3640 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3641 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3642 msm_pcm_get_out_chs,
3643 msm_pcm_put_out_chs),
3644 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3645 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3646 msm_pcm_get_out_chs,
3647 msm_pcm_put_out_chs),
3648 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3649 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3650 msm_pcm_get_out_chs,
3651 msm_pcm_put_out_chs),
3652 {
3653 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3654 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3655 .name = "MultiMedia1 Channel Mixer",
3656 .info = msm_pcm_channel_mixer_info,
3657 .get = msm_pcm_channel_mixer_get,
3658 .put = msm_pcm_channel_mixer_put,
3659 .private_value = (unsigned long)&(mm1_channel_mux)
3660 },
3661 {
3662 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3663 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3664 .name = "MultiMedia2 Channel Mixer",
3665 .info = msm_pcm_channel_mixer_info,
3666 .get = msm_pcm_channel_mixer_get,
3667 .put = msm_pcm_channel_mixer_put,
3668 .private_value = (unsigned long)&(mm2_channel_mux)
3669 },
3670 {
3671 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3672 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3673 .name = "MultiMedia3 Channel Mixer",
3674 .info = msm_pcm_channel_mixer_info,
3675 .get = msm_pcm_channel_mixer_get,
3676 .put = msm_pcm_channel_mixer_put,
3677 .private_value = (unsigned long)&(mm3_channel_mux)
3678 },
3679 {
3680 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3681 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3682 .name = "MultiMedia4 Channel Mixer",
3683 .info = msm_pcm_channel_mixer_info,
3684 .get = msm_pcm_channel_mixer_get,
3685 .put = msm_pcm_channel_mixer_put,
3686 .private_value = (unsigned long)&(mm4_channel_mux)
3687 },
3688 {
3689 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3690 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3691 .name = "MultiMedia1 Output Channel1",
3692 .info = msm_pcm_channel_weight_info,
3693 .get = msm_pcm_channel_weight_get,
3694 .put = msm_pcm_channel_weight_put,
3695 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3696 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3697 },
3698 {
3699 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3700 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3701 .name = "MultiMedia1 Output Channel2",
3702 .info = msm_pcm_channel_weight_info,
3703 .get = msm_pcm_channel_weight_get,
3704 .put = msm_pcm_channel_weight_put,
3705 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3706 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3707 },
3708 {
3709 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3710 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3711 .name = "MultiMedia1 Output Channel3",
3712 .info = msm_pcm_channel_weight_info,
3713 .get = msm_pcm_channel_weight_get,
3714 .put = msm_pcm_channel_weight_put,
3715 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3716 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3717 },
3718 {
3719 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3720 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3721 .name = "MultiMedia1 Output Channel4",
3722 .info = msm_pcm_channel_weight_info,
3723 .get = msm_pcm_channel_weight_get,
3724 .put = msm_pcm_channel_weight_put,
3725 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3726 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3727 },
3728 {
3729 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3730 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3731 .name = "MultiMedia1 Output Channel5",
3732 .info = msm_pcm_channel_weight_info,
3733 .get = msm_pcm_channel_weight_get,
3734 .put = msm_pcm_channel_weight_put,
3735 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3736 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3737 },
3738 {
3739 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3740 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3741 .name = "MultiMedia1 Output Channel6",
3742 .info = msm_pcm_channel_weight_info,
3743 .get = msm_pcm_channel_weight_get,
3744 .put = msm_pcm_channel_weight_put,
3745 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3746 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3747 },
3748 {
3749 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3750 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3751 .name = "MultiMedia1 Output Channel7",
3752 .info = msm_pcm_channel_weight_info,
3753 .get = msm_pcm_channel_weight_get,
3754 .put = msm_pcm_channel_weight_put,
3755 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3756 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3757 },
3758 {
3759 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3760 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3761 .name = "MultiMedia1 Output Channel8",
3762 .info = msm_pcm_channel_weight_info,
3763 .get = msm_pcm_channel_weight_get,
3764 .put = msm_pcm_channel_weight_put,
3765 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3766 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3767 },
3768 {
3769 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3770 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05303771 .name = "MultiMedia1 Output Channel9",
3772 .info = msm_pcm_channel_weight_info,
3773 .get = msm_pcm_channel_weight_get,
3774 .put = msm_pcm_channel_weight_put,
3775 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3776 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 8,}
3777 },
3778 {
3779 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3780 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3781 .name = "MultiMedia1 Output Channel10",
3782 .info = msm_pcm_channel_weight_info,
3783 .get = msm_pcm_channel_weight_get,
3784 .put = msm_pcm_channel_weight_put,
3785 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3786 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 9,}
3787 },
3788 {
3789 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3790 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303791 .name = "MultiMedia2 Output Channel1",
3792 .info = msm_pcm_channel_weight_info,
3793 .get = msm_pcm_channel_weight_get,
3794 .put = msm_pcm_channel_weight_put,
3795 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3796 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3797 },
3798 {
3799 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3800 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3801 .name = "MultiMedia2 Output Channel2",
3802 .info = msm_pcm_channel_weight_info,
3803 .get = msm_pcm_channel_weight_get,
3804 .put = msm_pcm_channel_weight_put,
3805 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3806 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3807 },
3808 {
3809 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3810 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3811 .name = "MultiMedia2 Output Channel3",
3812 .info = msm_pcm_channel_weight_info,
3813 .get = msm_pcm_channel_weight_get,
3814 .put = msm_pcm_channel_weight_put,
3815 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3816 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3817 },
3818 {
3819 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3820 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3821 .name = "MultiMedia3 Output Channel1",
3822 .info = msm_pcm_channel_weight_info,
3823 .get = msm_pcm_channel_weight_get,
3824 .put = msm_pcm_channel_weight_put,
3825 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3826 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3827 },
3828 {
3829 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3830 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3831 .name = "MultiMedia3 Output Channel2",
3832 .info = msm_pcm_channel_weight_info,
3833 .get = msm_pcm_channel_weight_get,
3834 .put = msm_pcm_channel_weight_put,
3835 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3836 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3837 },
3838 {
3839 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3840 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3841 .name = "MultiMedia1 Channel1",
3842 .info = msm_pcm_channel_input_be_info,
3843 .get = msm_pcm_channel_input_be_get,
3844 .put = msm_pcm_channel_input_be_put,
3845 .private_value = (unsigned long)&(mm1_ch1_enum)
3846 },
3847 {
3848 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3849 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3850 .name = "MultiMedia1 Channel2",
3851 .info = msm_pcm_channel_input_be_info,
3852 .get = msm_pcm_channel_input_be_get,
3853 .put = msm_pcm_channel_input_be_put,
3854 .private_value = (unsigned long)&(mm1_ch2_enum)
3855 },
3856 {
3857 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3858 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3859 .name = "MultiMedia1 Channel3",
3860 .info = msm_pcm_channel_input_be_info,
3861 .get = msm_pcm_channel_input_be_get,
3862 .put = msm_pcm_channel_input_be_put,
3863 .private_value = (unsigned long)&(mm1_ch3_enum)
3864 },
3865 {
3866 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3867 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3868 .name = "MultiMedia1 Channel4",
3869 .info = msm_pcm_channel_input_be_info,
3870 .get = msm_pcm_channel_input_be_get,
3871 .put = msm_pcm_channel_input_be_put,
3872 .private_value = (unsigned long)&(mm1_ch4_enum)
3873 },
3874 {
3875 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3876 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3877 .name = "MultiMedia1 Channel5",
3878 .info = msm_pcm_channel_input_be_info,
3879 .get = msm_pcm_channel_input_be_get,
3880 .put = msm_pcm_channel_input_be_put,
3881 .private_value = (unsigned long)&(mm1_ch5_enum)
3882 },
3883 {
3884 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3885 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3886 .name = "MultiMedia1 Channel6",
3887 .info = msm_pcm_channel_input_be_info,
3888 .get = msm_pcm_channel_input_be_get,
3889 .put = msm_pcm_channel_input_be_put,
3890 .private_value = (unsigned long)&(mm1_ch6_enum)
3891 },
3892 {
3893 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3894 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3895 .name = "MultiMedia1 Channel7",
3896 .info = msm_pcm_channel_input_be_info,
3897 .get = msm_pcm_channel_input_be_get,
3898 .put = msm_pcm_channel_input_be_put,
3899 .private_value = (unsigned long)&(mm1_ch7_enum)
3900 },
3901 {
3902 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3903 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3904 .name = "MultiMedia1 Channel8",
3905 .info = msm_pcm_channel_input_be_info,
3906 .get = msm_pcm_channel_input_be_get,
3907 .put = msm_pcm_channel_input_be_put,
3908 .private_value = (unsigned long)&(mm1_ch8_enum)
3909 },
3910};
3911static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3912 struct snd_ctl_elem_value *ucontrol)
3913{
3914 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3915 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3916 ucontrol->value.integer.value[0]);
3917 return 0;
3918}
3919
3920static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3921 struct snd_ctl_elem_value *ucontrol)
3922{
3923 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3924 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3925 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3926 return 0;
3927}
3928
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05303929static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
3930 struct snd_ctl_elem_value *ucontrol)
3931{
3932 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
3933 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
3934 ucontrol->value.integer.value[0]);
3935 return 0;
3936}
3937
3938static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
3939 struct snd_ctl_elem_value *ucontrol)
3940{
3941 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
3942 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
3943 __func__, msm_ec_ref_ch_downmixed);
3944 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
3945 return 0;
3946}
3947
3948static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
3949 struct snd_ctl_elem_value *ucontrol)
3950{
3951 int i = 0, ret = 0;
3952 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
3953 int out_channel_idx = ((struct soc_multi_mixer_control *)
3954 kcontrol->private_value)->shift;
3955
3956 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
3957 weights[i] = ucontrol->value.integer.value[i];
3958
3959 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
3960 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
3961 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
3962 return ret;
3963}
3964
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303965static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05303966 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
3967 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303968
3969static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3970 struct snd_ctl_elem_value *ucontrol)
3971{
3972 switch (msm_ec_ref_bit_format) {
3973 case SNDRV_PCM_FORMAT_S24_LE:
3974 ucontrol->value.integer.value[0] = 2;
3975 break;
3976 case SNDRV_PCM_FORMAT_S16_LE:
3977 ucontrol->value.integer.value[0] = 1;
3978 break;
3979 default:
3980 ucontrol->value.integer.value[0] = 0;
3981 break;
3982 }
3983 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3984 __func__, ucontrol->value.integer.value[0]);
3985 return 0;
3986}
3987
3988static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3989 struct snd_ctl_elem_value *ucontrol)
3990{
3991 u16 bit_width = 0;
3992
3993 switch (ucontrol->value.integer.value[0]) {
3994 case 2:
3995 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3996 break;
3997 case 1:
3998 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3999 break;
4000 default:
4001 msm_ec_ref_bit_format = 0;
4002 break;
4003 }
4004
4005 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
4006 bit_width = 16;
4007 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
4008 bit_width = 24;
4009
4010 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
4011 __func__, msm_ec_ref_bit_format);
4012 adm_ec_ref_rx_bit_width(bit_width);
4013 return 0;
4014}
4015
4016static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
4017
4018static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
4019 struct snd_ctl_elem_value *ucontrol)
4020{
4021 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
4022 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
4023 __func__, ucontrol->value.integer.value[0]);
4024 return 0;
4025}
4026
4027static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
4028 struct snd_ctl_elem_value *ucontrol)
4029{
4030 switch (ucontrol->value.integer.value[0]) {
4031 case 0:
4032 msm_ec_ref_sampling_rate = 0;
4033 break;
4034 case 1:
4035 msm_ec_ref_sampling_rate = 8000;
4036 break;
4037 case 2:
4038 msm_ec_ref_sampling_rate = 16000;
4039 break;
4040 case 3:
4041 msm_ec_ref_sampling_rate = 32000;
4042 break;
4043 case 4:
4044 msm_ec_ref_sampling_rate = 44100;
4045 break;
4046 case 5:
4047 msm_ec_ref_sampling_rate = 48000;
4048 break;
4049 case 6:
4050 msm_ec_ref_sampling_rate = 96000;
4051 break;
4052 case 7:
4053 msm_ec_ref_sampling_rate = 192000;
4054 break;
4055 case 8:
4056 msm_ec_ref_sampling_rate = 384000;
4057 break;
4058 default:
4059 msm_ec_ref_sampling_rate = 48000;
4060 break;
4061 }
4062 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
4063 __func__, msm_ec_ref_sampling_rate);
4064 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
4065 return 0;
4066}
4067
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05304068static int get_ec_ref_port_id(int value, int *index)
4069{
4070 int port_id;
4071
4072 switch (value) {
4073 case 0:
4074 *index = 0;
4075 port_id = AFE_PORT_INVALID;
4076 break;
4077 case 1:
4078 *index = 1;
4079 port_id = SLIMBUS_0_RX;
4080 break;
4081 case 2:
4082 *index = 2;
4083 port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
4084 break;
4085 case 3:
4086 *index = 3;
4087 port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4088 break;
4089 case 4:
4090 *index = 4;
4091 port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4092 break;
4093 case 5:
4094 *index = 5;
4095 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4096 break;
4097 case 6:
4098 *index = 6;
4099 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4100 break;
4101 case 7:
4102 *index = 7;
4103 port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
4104 break;
4105 case 9:
4106 *index = 9;
4107 port_id = SLIMBUS_5_RX;
4108 break;
4109 case 10:
4110 *index = 10;
4111 port_id = SLIMBUS_1_TX;
4112 break;
4113 case 11:
4114 *index = 11;
4115 port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
4116 break;
4117 case 12:
4118 *index = 12;
4119 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
4120 break;
4121 case 13:
4122 *index = 13;
4123 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
4124 break;
4125 case 14:
4126 *index = 14;
4127 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
4128 break;
4129 case 15:
4130 *index = 15;
4131 port_id = SLIMBUS_6_RX;
4132 break;
4133 case 16:
4134 *index = 16;
4135 port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
4136 break;
4137 case 17:
4138 *index = 17;
4139 port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
4140 break;
4141 case 18:
4142 *index = 18;
4143 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
4144 break;
4145 case 19:
4146 *index = 19;
4147 port_id = AFE_PORT_ID_USB_RX;
4148 break;
4149 case 20:
4150 *index = 20;
4151 port_id = AFE_PORT_ID_INT0_MI2S_RX;
4152 break;
4153 case 21:
4154 *index = 21;
4155 port_id = AFE_PORT_ID_INT4_MI2S_RX;
4156 break;
4157 case 22:
4158 *index = 22;
4159 port_id = AFE_PORT_ID_INT3_MI2S_TX;
4160 break;
4161 case 23:
4162 *index = 23;
4163 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
4164 break;
4165 case 24:
4166 *index = 24;
4167 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
4168 break;
4169 case 25:
4170 *index = 25;
4171 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
4172 break;
4173 case 26:
4174 *index = 26;
4175 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
4176 break;
4177 case 27:
4178 *index = 27;
4179 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
4180 break;
4181 case 28:
4182 *index = 28;
4183 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
4184 break;
4185 case 29:
4186 *index = 29;
4187 port_id = SLIMBUS_7_RX;
4188 break;
4189 case 30:
4190 *index = 30;
4191 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
4192 break;
4193 case 31:
4194 *index = 31;
4195 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
4196 break;
4197 case 32:
4198 *index = 32;
4199 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
4200 break;
4201 case 33:
4202 *index = 33;
4203 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
4204 break;
4205 case 34:
4206 *index = 34;
4207 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
4208 break;
4209 case 35:
4210 *index = 35;
4211 port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
4212 break;
4213 case 36:
4214 *index = 36;
4215 port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4216 break;
4217 default:
4218 *index = 0; /* NONE */
4219 pr_err("%s: Invalid value %d\n", __func__, value);
4220 port_id = AFE_PORT_INVALID;
4221 break;
4222 }
4223
4224 return port_id;
4225}
4226
4227static int msm_routing_afe_lb_tx_port_get(struct snd_kcontrol *kcontrol,
4228 struct snd_ctl_elem_value *ucontrol)
4229{
4230 pr_debug("%s: port index = %d", __func__, afe_loopback_tx_port_index);
4231 mutex_lock(&routing_lock);
4232 ucontrol->value.integer.value[0] = afe_loopback_tx_port_index;
4233 mutex_unlock(&routing_lock);
4234
4235 return 0;
4236}
4237
4238static int msm_routing_afe_lb_tx_port_put(struct snd_kcontrol *kcontrol,
4239 struct snd_ctl_elem_value *ucontrol)
4240{
4241 int value = ucontrol->value.integer.value[0];
4242
4243 mutex_lock(&routing_lock);
4244 afe_loopback_tx_port_id = get_ec_ref_port_id(value,
4245 &afe_loopback_tx_port_index);
4246 pr_debug("%s: afe_loopback_tx_port_index = %d\n",
4247 __func__, afe_loopback_tx_port_index);
4248 mutex_unlock(&routing_lock);
4249
4250 return 0;
4251}
4252
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304253static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
4254 "32000", "44100", "48000", "96000", "192000", "384000"};
4255
4256static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05304257 SOC_ENUM_SINGLE_EXT(17, ec_ref_ch_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304258 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
4259 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
4260};
4261
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304262static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
4263 "PRI_MI2S_TX", "SEC_MI2S_TX",
4264 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
4265 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
4266 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
4267 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05304268 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
4269 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08004270 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05304271 "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 -07004272 "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 +05304273};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304274
4275static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
4276 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
4277};
4278
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05304279static const struct snd_kcontrol_new ec_ref_param_controls[] = {
4280 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
4281 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
4282 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
4283 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
4284 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
4285 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
4286 SOC_ENUM_EXT("EC Reference Downmixed Channels",
4287 msm_route_ec_ref_params_enum[0],
4288 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
4289 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM,
4290 0, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
4291 msm_ec_ref_chmixer_weights_put),
4292 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM,
4293 1, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
4294 msm_ec_ref_chmixer_weights_put),
4295 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM,
4296 2, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
4297 msm_ec_ref_chmixer_weights_put),
4298 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM,
4299 3, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
4300 msm_ec_ref_chmixer_weights_put),
4301 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM,
4302 4, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
4303 msm_ec_ref_chmixer_weights_put),
4304 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM,
4305 5, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
4306 msm_ec_ref_chmixer_weights_put),
4307 SOC_ENUM_EXT("AFE_LOOPBACK_TX Port", msm_route_ec_ref_rx_enum[0],
4308 msm_routing_afe_lb_tx_port_get, msm_routing_afe_lb_tx_port_put),
4309};
4310
4311static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
4312 struct snd_ctl_elem_value *ucontrol)
4313{
4314 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
4315 mutex_lock(&routing_lock);
4316 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
4317 mutex_unlock(&routing_lock);
4318
4319 return 0;
4320}
4321
4322static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
4323 struct snd_ctl_elem_value *ucontrol)
4324{
4325 int value = ucontrol->value.integer.value[0];
4326 struct snd_soc_dapm_widget *widget =
4327 snd_soc_dapm_kcontrol_widget(kcontrol);
4328 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4329 struct snd_soc_dapm_update *update = NULL;
4330
4331 mutex_lock(&routing_lock);
4332 msm_ec_ref_port_id = get_ec_ref_port_id(value, &msm_route_ec_ref_rx);
4333 adm_ec_ref_rx_id(msm_ec_ref_port_id);
4334 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
4335 __func__, msm_route_ec_ref_rx);
4336 mutex_unlock(&routing_lock);
4337
4338 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
4339 msm_route_ec_ref_rx, e, update);
4340 return 0;
4341}
4342
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304343static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
4344 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
4345 msm_route_ec_ref_rx_enum[0],
4346 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4347
4348static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
4349 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
4350 msm_route_ec_ref_rx_enum[0],
4351 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4352
4353static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
4354 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
4355 msm_route_ec_ref_rx_enum[0],
4356 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4357
4358static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
4359 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
4360 msm_route_ec_ref_rx_enum[0],
4361 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4362
4363static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
4364 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
4365 msm_route_ec_ref_rx_enum[0],
4366 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4367
4368static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4369 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4370 msm_route_ec_ref_rx_enum[0],
4371 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4372
4373static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4374 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4375 msm_route_ec_ref_rx_enum[0],
4376 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4377
4378static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4379 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4380 msm_route_ec_ref_rx_enum[0],
4381 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4382
Asish Bhattacharya34504582017-08-08 12:55:01 +05304383static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4384 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4385 msm_route_ec_ref_rx_enum[0],
4386 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4387
Laxminath Kasam38070be2017-08-17 18:21:59 +05304388static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4389 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4390 msm_route_ec_ref_rx_enum[0],
4391 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4392
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304393static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4394 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4395 msm_route_ec_ref_rx_enum[0],
4396 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4397
4398static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4399 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4400 msm_route_ec_ref_rx_enum[0],
4401 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4402
4403static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4404 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4405 msm_route_ec_ref_rx_enum[0],
4406 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4407
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304408static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4409 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4410 msm_route_ec_ref_rx_enum[0],
4411 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4412
4413static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4414 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4415 msm_route_ec_ref_rx_enum[0],
4416 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4417
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304418static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4419 struct snd_ctl_elem_value *ucontrol)
4420{
4421 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4422
4423 mutex_lock(&routing_lock);
4424 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4425 mutex_unlock(&routing_lock);
4426 return 0;
4427}
4428
4429static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4430 struct snd_ctl_elem_value *ucontrol)
4431{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304432 struct snd_soc_dapm_widget *widget =
4433 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304434 int mux = ucontrol->value.enumerated.item[0];
4435 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4436 int ret = 1;
4437 bool state = true;
4438 uint16_t ext_ec_ref_port_id;
4439 struct snd_soc_dapm_update *update = NULL;
4440
4441 if (mux >= e->items) {
4442 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4443 return -EINVAL;
4444 }
4445
4446 mutex_lock(&routing_lock);
4447 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4448
4449 switch (msm_route_ext_ec_ref) {
4450 case EXT_EC_REF_PRI_MI2S_TX:
4451 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4452 break;
4453 case EXT_EC_REF_SEC_MI2S_TX:
4454 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4455 break;
4456 case EXT_EC_REF_TERT_MI2S_TX:
4457 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4458 break;
4459 case EXT_EC_REF_QUAT_MI2S_TX:
4460 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4461 break;
4462 case EXT_EC_REF_QUIN_MI2S_TX:
4463 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4464 break;
4465 case EXT_EC_REF_SLIM_1_TX:
4466 ext_ec_ref_port_id = SLIMBUS_1_TX;
4467 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004468 case EXT_EC_REF_SEC_TDM_TX:
4469 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4470 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304471 case EXT_EC_REF_NONE:
4472 default:
4473 ext_ec_ref_port_id = AFE_PORT_INVALID;
4474 state = false;
4475 break;
4476 }
4477
4478 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4479 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4480
4481 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4482 mutex_unlock(&routing_lock);
4483 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4484 update);
4485 } else {
4486 ret = -EINVAL;
4487 mutex_unlock(&routing_lock);
4488 }
4489 return ret;
4490}
4491
4492static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4493 "SEC_MI2S_TX", "TERT_MI2S_TX",
4494 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004495 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304496
4497static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4498 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4499};
4500
4501static const struct snd_kcontrol_new voc_ext_ec_mux =
4502 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4503 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4504
4505
4506static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004507 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4508 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304509 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004511 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4512 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304513 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004515 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4516 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304517 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004519 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4520 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304521 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004523 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4524 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304525 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004527 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4528 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304529 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004531 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4532 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304533 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004535 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4536 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304537 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004539 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4540 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304541 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004543 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4544 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304545 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004547 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4548 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304549 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004551 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4552 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304553 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004555 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4556 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304557 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004559 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4560 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304561 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004563 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4564 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304565 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004567 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4568 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304569 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004571 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4572 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304573 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004575 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4576 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304577 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004579 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4580 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304581 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4582 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304583 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4584 MSM_BACKEND_DAI_PRI_I2S_RX,
4585 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004587 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4588 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304589 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004591 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4592 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304593 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4594 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304595};
4596
4597static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004598 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4599 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304600 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004602 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4603 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304604 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004606 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4607 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304608 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004610 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4611 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304612 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004614 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4615 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304616 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004618 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4619 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304620 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004622 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4623 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304624 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004626 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4627 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304628 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004630 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4631 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304632 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004634 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4635 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304636 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004638 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4639 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304640 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004642 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4643 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304644 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004646 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4647 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304648 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004650 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4651 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304652 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004654 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4655 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304656 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004658 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4659 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304660 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004662 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4663 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304664 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004666 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4667 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304668 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004670 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4671 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304672 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4673 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304674 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4675 MSM_BACKEND_DAI_SEC_I2S_RX,
4676 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004678 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4679 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304680 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004682 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4683 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304684 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4685 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304686};
4687
Ralf Herzc8701f72018-06-20 11:37:35 +02004688static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004689 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004690 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304691 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004693 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004694 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304695 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004697 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004698 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304699 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004701 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004702 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304703 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004705 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004706 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304707 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004709 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004710 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304711 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004713 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004714 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304715 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004717 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004718 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304719 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004721 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004722 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304723 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004725 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004726 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304727 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004729 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004730 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304731 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004733 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004734 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304735 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004737 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004738 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304739 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004741 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004742 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304743 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004745 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004746 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304747 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004749 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004750 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304751 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004753 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004754 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304755 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004757 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004758 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304759 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004761 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004762 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304763 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4764 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304765 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4766 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4767 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004769 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004770 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304771 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004773 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004774 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4775 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4776 msm_routing_put_audio_mixer),
4777};
4778
4779static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4780 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4781 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4782 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4783 msm_routing_put_audio_mixer),
4784 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4785 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4786 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4787 msm_routing_put_audio_mixer),
4788 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4789 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4790 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4791 msm_routing_put_audio_mixer),
4792 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4793 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4794 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4795 msm_routing_put_audio_mixer),
4796 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4797 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4798 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4799 msm_routing_put_audio_mixer),
4800 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4801 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4802 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4803 msm_routing_put_audio_mixer),
4804 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4805 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4806 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4807 msm_routing_put_audio_mixer),
4808 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4809 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4810 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4811 msm_routing_put_audio_mixer),
4812 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4813 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4814 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4815 msm_routing_put_audio_mixer),
4816 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4817 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4818 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4819 msm_routing_put_audio_mixer),
4820 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4821 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4822 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4823 msm_routing_put_audio_mixer),
4824 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4825 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4826 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4827 msm_routing_put_audio_mixer),
4828 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4829 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4830 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4831 msm_routing_put_audio_mixer),
4832 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4833 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4834 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4835 msm_routing_put_audio_mixer),
4836 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4837 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4838 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4839 msm_routing_put_audio_mixer),
4840 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4841 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4842 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4843 msm_routing_put_audio_mixer),
4844 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4845 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4846 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4847 msm_routing_put_audio_mixer),
4848 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4849 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4850 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4851 msm_routing_put_audio_mixer),
4852 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4853 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4854 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4855 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304856 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4857 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4858 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4859 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004860 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4861 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4862 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4863 msm_routing_put_audio_mixer),
4864 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4865 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304866 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4867 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304868};
4869
4870static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004871 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4872 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304873 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004875 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4876 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304877 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004879 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4880 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304881 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004883 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4884 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304885 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004887 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4888 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304889 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004891 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4892 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304893 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004895 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4896 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304897 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004899 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4900 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304901 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004903 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4904 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304905 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004907 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4908 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304909 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004911 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4912 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304913 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004915 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4916 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304917 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004919 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4920 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304921 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004923 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4924 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304925 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004927 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4928 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304929 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004931 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4932 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304933 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4934 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304935 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4936 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4937 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4938 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304939};
4940
4941static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004942 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4943 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304944 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004946 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4947 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304948 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004950 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4951 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304952 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004954 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4955 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304956 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004958 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4959 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304960 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004962 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4963 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304964 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004966 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4967 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304968 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004970 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4971 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304972 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004974 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4975 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304976 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004978 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4979 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304980 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004982 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4983 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304984 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004986 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4987 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304988 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004990 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4991 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304992 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004994 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4995 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304996 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004998 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4999 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305000 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005002 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5003 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305004 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005006 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5007 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305008 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005010 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5011 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305012 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005014 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5015 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305016 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5017 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305018 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5019 MSM_BACKEND_DAI_SLIMBUS_5_RX,
5020 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005022 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5023 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305024 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005026 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5027 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305028 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5029 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305030};
5031
5032static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005033 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5034 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305035 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005037 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5038 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305039 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005041 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5042 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305043 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005045 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5046 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305047 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005049 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5050 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305051 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005053 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5054 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305055 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005057 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5058 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305059 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005061 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5062 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305063 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005065 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5066 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305067 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005069 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5070 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305071 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005073 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5074 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305075 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005077 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5078 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305079 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005081 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5082 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305083 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005085 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5086 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305087 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005089 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5090 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305091 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005093 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5094 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305095 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005097 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5098 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305099 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005101 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5102 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305103 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005105 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5106 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305107 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5108 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305109 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5110 MSM_BACKEND_DAI_SLIMBUS_0_RX,
5111 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005113 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5114 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305115 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005117 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5118 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305119 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5120 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305121};
5122
5123static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005124 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5125 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305126 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005128 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5129 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305130 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005132 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5133 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305134 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005136 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5137 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305138 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005140 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5141 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305142 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005144 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5145 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305146 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005148 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5149 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305150 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005152 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5153 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305154 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005156 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5157 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305158 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005160 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5161 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305162 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005164 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5165 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305166 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005168 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5169 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305170 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005172 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5173 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305174 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005176 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5177 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305178 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005180 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5181 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305182 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005184 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5185 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305186 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005188 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5189 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305190 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005192 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5193 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305194 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005196 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5197 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305198 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5199 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305200 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5201 MSM_BACKEND_DAI_MI2S_RX,
5202 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005204 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5205 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305206 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005208 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5209 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305210 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5211 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305212};
5213
5214static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005215 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5216 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305217 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005219 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5220 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305221 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005223 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5224 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305225 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005227 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5228 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305229 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005231 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5232 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305233 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005235 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5236 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305237 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005239 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5240 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305241 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005243 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5244 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305245 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005247 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5248 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305249 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005251 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5252 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305253 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005255 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5256 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305257 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005259 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5260 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305261 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005263 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5264 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305265 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005267 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5268 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305269 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005271 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5272 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305273 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005275 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5276 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305277 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005279 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5280 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305281 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005283 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5284 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305285 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005287 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5288 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305289 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5290 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305291 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5292 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
5293 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005295 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5296 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305297 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005299 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5300 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305301 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5302 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305303};
5304
5305static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005306 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5307 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305308 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005310 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5311 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305312 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005314 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5315 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305316 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005318 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5319 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305320 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005322 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5323 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305324 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005326 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5327 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305328 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005330 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5331 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305332 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005334 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5335 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305336 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005338 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5339 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305340 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005342 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5343 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305344 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005346 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5347 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305348 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005350 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5351 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305352 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005354 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5355 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305356 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005358 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5359 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305360 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005362 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5363 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305364 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005366 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5367 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305368 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005370 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5371 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305372 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005374 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5375 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305376 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005378 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5379 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305380 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5381 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305382 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5383 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5384 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005386 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5387 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305388 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005390 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5391 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305392 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5393 msm_routing_put_audio_mixer),
5394
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305395};
5396
5397static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005398 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5399 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305400 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005402 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5403 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305404 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005406 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5407 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305408 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005410 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5411 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305412 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005414 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5415 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305416 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005418 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5419 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305420 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005422 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5423 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305424 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005426 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5427 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305428 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005430 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5431 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305432 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005434 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5435 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305436 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005438 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5439 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305440 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005442 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5443 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305444 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005446 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5447 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305448 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005450 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5451 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305452 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005454 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5455 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305456 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005458 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5459 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305460 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005462 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5463 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305464 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5465 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305466 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5467 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5468 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005470 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5471 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305472 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005474 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5475 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305476 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5477 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305478};
5479
5480static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005481 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5482 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305483 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5484 msm_routing_put_audio_mixer),
5485};
5486
5487static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005488 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5489 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305490 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005492 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5493 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305494 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005496 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5497 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305498 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005500 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5501 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305502 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005504 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5505 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305506 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005508 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5509 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305510 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005512 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5513 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305514 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005516 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5517 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305518 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005520 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5521 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305522 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005524 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5525 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305526 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005528 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5529 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305530 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005532 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5533 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305534 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005536 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5537 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305538 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005540 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5541 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305542 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005544 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5545 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305546 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005548 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5549 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305550 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005552 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5553 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305554 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005556 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5557 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305558 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005560 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5561 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305562 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5563 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305564 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5565 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5566 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005568 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5569 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305570 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005572 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5573 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305574 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5575 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305576};
5577
5578static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005579 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5580 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305581 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005583 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5584 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305585 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005587 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5588 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305589 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005591 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5592 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305593 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005595 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5596 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305597 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005599 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5600 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305601 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005603 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5604 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305605 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005607 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5608 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305609 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005611 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5612 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305613 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005615 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5616 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305617 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005619 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5620 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305621 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005623 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5624 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305625 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005627 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5628 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305629 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005631 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5632 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305633 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005635 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5636 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305637 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005639 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5640 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305641 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005643 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5644 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305645 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005647 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5648 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305649 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005651 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5652 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305653 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5654 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305655 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5656 MSM_BACKEND_DAI_PRI_MI2S_RX,
5657 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005659 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5660 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305661 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005663 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5664 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305665 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5666 msm_routing_put_audio_mixer),
5667
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305668};
5669
5670static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005671 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5672 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305673 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005675 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5676 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305677 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005679 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5680 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305681 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005683 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5684 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305685 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005687 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5688 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305689 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005691 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5692 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305693 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005695 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5696 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305697 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005699 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5700 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305701 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005703 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5704 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305705 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005707 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5708 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305709 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005711 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5712 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305713 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005715 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5716 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305717 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005719 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5720 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305721 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005723 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5724 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305725 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005727 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5728 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305729 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005731 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5732 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305733 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5734 msm_routing_put_audio_mixer),
5735};
5736
5737static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005738 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5739 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305740 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005742 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5743 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305744 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005746 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5747 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305748 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005750 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5751 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305752 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005754 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5755 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305756 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005758 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5759 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305760 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005762 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5763 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305764 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005766 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5767 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305768 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005770 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5771 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305772 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005774 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5775 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305776 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005778 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5779 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305780 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005782 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5783 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305784 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005786 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5787 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305788 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005790 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5791 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305792 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005794 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5795 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305796 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005798 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5799 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305800 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5801 msm_routing_put_audio_mixer),
5802};
5803
5804static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005805 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5806 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305807 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005809 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5810 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305811 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005813 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5814 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305815 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005817 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5818 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305819 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005821 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5822 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305823 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005825 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5826 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305827 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005829 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5830 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305831 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005833 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5834 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305835 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005837 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5838 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305839 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005841 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5842 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305843 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005845 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5846 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305847 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005849 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5850 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305851 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005853 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5854 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305855 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005857 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5858 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305859 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005861 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5862 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305863 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005865 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5866 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305867 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005869 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5870 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305871 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005873 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5874 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305875 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005877 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5878 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305879 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5880 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305881 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5882 MSM_BACKEND_DAI_HDMI_RX,
5883 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005885 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5886 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305887 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005889 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5890 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305891 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5892 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305893};
5894
5895static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005896 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5897 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305898 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005900 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5901 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305902 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005904 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5905 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305906 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005908 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5909 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305910 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005912 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5913 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305914 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005916 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5917 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305918 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005920 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5921 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305922 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005924 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5925 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305926 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005928 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5929 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305930 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005932 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5933 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305934 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005936 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5937 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305938 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005940 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5941 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305942 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005944 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5945 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305946 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005948 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5949 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305950 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005952 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5953 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305954 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005956 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5957 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305958 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5959 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305960 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5961 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5962 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5963 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305964};
5965
Karthikeyan Mani57550082018-05-03 18:43:58 -07005966static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5967 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5968 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5969 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
5971 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5972 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5973 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5974 msm_routing_put_audio_mixer),
5975 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5976 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5977 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5978 msm_routing_put_audio_mixer),
5979 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5980 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5981 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5982 msm_routing_put_audio_mixer),
5983 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5984 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5985 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5986 msm_routing_put_audio_mixer),
5987 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5988 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5989 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5990 msm_routing_put_audio_mixer),
5991 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5992 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5993 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5994 msm_routing_put_audio_mixer),
5995 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5996 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5997 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5998 msm_routing_put_audio_mixer),
5999 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6000 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6001 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6002 msm_routing_put_audio_mixer),
6003 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6004 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6005 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6006 msm_routing_put_audio_mixer),
6007 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6008 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6009 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6010 msm_routing_put_audio_mixer),
6011 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6012 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6013 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6014 msm_routing_put_audio_mixer),
6015 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6016 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6017 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6018 msm_routing_put_audio_mixer),
6019 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6020 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6021 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6022 msm_routing_put_audio_mixer),
6023 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6024 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6025 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6026 msm_routing_put_audio_mixer),
6027 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6028 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6029 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6030 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306031 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6032 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6033 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6034 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07006035};
6036
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306037 /* incall music delivery mixer */
6038static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006039 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6040 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306041 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006043 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6044 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306045 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006047 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6048 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306049 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006051 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6052 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306053 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6054 msm_routing_put_audio_mixer),
6055};
6056
6057static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006058 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6059 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306060 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006062 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6063 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306064 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006066 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6067 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306068 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006070 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6071 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306072 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6073 msm_routing_put_audio_mixer),
6074};
6075
6076static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006077 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6078 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306079 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006081 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6082 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306083 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006085 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6086 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306087 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006089 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6090 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306091 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6092 msm_routing_put_audio_mixer),
6093};
6094
6095static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006096 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6097 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306098 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006100 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6101 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306102 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006104 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6105 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306106 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006108 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6109 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306110 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006112 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6113 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306114 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006116 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6117 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306118 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006120 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6121 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306122 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006124 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6125 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306126 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006128 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6129 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306130 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006132 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6133 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306134 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006136 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6137 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306138 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006140 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6141 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306142 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006144 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6145 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306146 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006148 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6149 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306150 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006152 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6153 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306154 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006156 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6157 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306158 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6159 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306160 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6161 MSM_BACKEND_DAI_SLIMBUS_6_RX,
6162 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6163 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306164};
6165
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306166static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
6167 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6168 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6169 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6170 msm_routing_put_audio_mixer),
6171 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6172 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6173 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6174 msm_routing_put_audio_mixer),
6175 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6176 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6177 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6178 msm_routing_put_audio_mixer),
6179 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6180 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6181 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6182 msm_routing_put_audio_mixer),
6183 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6184 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6185 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6186 msm_routing_put_audio_mixer),
6187 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6188 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6189 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6190 msm_routing_put_audio_mixer),
6191 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6192 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6193 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6194 msm_routing_put_audio_mixer),
6195 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6196 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6197 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6198 msm_routing_put_audio_mixer),
6199 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6200 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6201 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6202 msm_routing_put_audio_mixer),
6203 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6204 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6205 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6206 msm_routing_put_audio_mixer),
6207 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6208 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6209 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6210 msm_routing_put_audio_mixer),
6211 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6212 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6213 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6214 msm_routing_put_audio_mixer),
6215 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6216 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6217 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6218 msm_routing_put_audio_mixer),
6219 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6220 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6221 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6222 msm_routing_put_audio_mixer),
6223 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6224 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6225 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6226 msm_routing_put_audio_mixer),
6227 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6228 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6229 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6230 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306231 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6232 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6233 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6234 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306235};
6236
6237static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
6238 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6239 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6240 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6241 msm_routing_put_audio_mixer),
6242 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6243 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6244 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6245 msm_routing_put_audio_mixer),
6246 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6247 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6248 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6249 msm_routing_put_audio_mixer),
6250 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6251 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6252 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6253 msm_routing_put_audio_mixer),
6254 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6255 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6256 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6257 msm_routing_put_audio_mixer),
6258 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6259 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6260 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6261 msm_routing_put_audio_mixer),
6262 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6263 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6264 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6265 msm_routing_put_audio_mixer),
6266 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6267 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6268 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6269 msm_routing_put_audio_mixer),
6270 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6271 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6272 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6273 msm_routing_put_audio_mixer),
6274 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6275 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6276 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6277 msm_routing_put_audio_mixer),
6278 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6279 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6280 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6281 msm_routing_put_audio_mixer),
6282 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6283 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6284 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6285 msm_routing_put_audio_mixer),
6286 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6287 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6288 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6289 msm_routing_put_audio_mixer),
6290 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6291 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6292 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6293 msm_routing_put_audio_mixer),
6294 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6295 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6296 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6297 msm_routing_put_audio_mixer),
6298 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6299 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6300 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6301 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306302 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6303 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6304 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6305 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306306};
6307
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306308static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
6309 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6310 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6311 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6312 msm_routing_put_audio_mixer),
6313 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6314 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6315 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6316 msm_routing_put_audio_mixer),
6317 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6318 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6319 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6320 msm_routing_put_audio_mixer),
6321 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6322 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6323 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6324 msm_routing_put_audio_mixer),
6325 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6326 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6327 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6328 msm_routing_put_audio_mixer),
6329 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6330 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6331 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6332 msm_routing_put_audio_mixer),
6333 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6334 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6335 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6336 msm_routing_put_audio_mixer),
6337 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6338 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6339 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6340 msm_routing_put_audio_mixer),
6341 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6342 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6343 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6344 msm_routing_put_audio_mixer),
6345 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6346 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6347 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6348 msm_routing_put_audio_mixer),
6349 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6350 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6351 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6352 msm_routing_put_audio_mixer),
6353 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6354 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6355 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6356 msm_routing_put_audio_mixer),
6357 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6358 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6359 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6360 msm_routing_put_audio_mixer),
6361 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6362 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6363 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6364 msm_routing_put_audio_mixer),
6365 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6366 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6367 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6368 msm_routing_put_audio_mixer),
6369 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6370 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6371 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6372 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306373 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6374 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6375 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6376 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306377};
6378
6379static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6380 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6381 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6382 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6383 msm_routing_put_audio_mixer),
6384 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6385 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6386 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6387 msm_routing_put_audio_mixer),
6388 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6389 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6390 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6391 msm_routing_put_audio_mixer),
6392 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6393 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6394 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6395 msm_routing_put_audio_mixer),
6396 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6397 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6398 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6399 msm_routing_put_audio_mixer),
6400 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6401 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6402 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6403 msm_routing_put_audio_mixer),
6404 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6405 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6406 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6407 msm_routing_put_audio_mixer),
6408 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6409 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6410 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6411 msm_routing_put_audio_mixer),
6412 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6413 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6414 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6415 msm_routing_put_audio_mixer),
6416 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6417 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6418 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6419 msm_routing_put_audio_mixer),
6420 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6421 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6422 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6423 msm_routing_put_audio_mixer),
6424 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6425 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6426 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6427 msm_routing_put_audio_mixer),
6428 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6429 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6430 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6431 msm_routing_put_audio_mixer),
6432 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6433 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6434 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6435 msm_routing_put_audio_mixer),
6436 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6437 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6438 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6439 msm_routing_put_audio_mixer),
6440 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6441 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6442 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6443 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306444 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6445 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6446 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6447 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306448};
6449
6450static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6451 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6452 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6453 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6454 msm_routing_put_audio_mixer),
6455 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6456 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6457 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6458 msm_routing_put_audio_mixer),
6459 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6460 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6461 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6462 msm_routing_put_audio_mixer),
6463 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6464 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6465 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6466 msm_routing_put_audio_mixer),
6467 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6468 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6469 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6470 msm_routing_put_audio_mixer),
6471 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6472 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6473 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6474 msm_routing_put_audio_mixer),
6475 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6476 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6477 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6478 msm_routing_put_audio_mixer),
6479 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6480 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6481 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6482 msm_routing_put_audio_mixer),
6483 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6484 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6485 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6486 msm_routing_put_audio_mixer),
6487 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6488 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6489 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6490 msm_routing_put_audio_mixer),
6491 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6492 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6493 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6494 msm_routing_put_audio_mixer),
6495 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6496 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6497 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6498 msm_routing_put_audio_mixer),
6499 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6500 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6501 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6502 msm_routing_put_audio_mixer),
6503 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6504 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6505 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6506 msm_routing_put_audio_mixer),
6507 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6508 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6509 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6510 msm_routing_put_audio_mixer),
6511 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6512 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6513 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6514 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306515 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6516 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6517 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6518 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306519};
6520
6521static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6522 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6523 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6524 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6525 msm_routing_put_audio_mixer),
6526 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6527 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6528 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6529 msm_routing_put_audio_mixer),
6530 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6531 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6532 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6533 msm_routing_put_audio_mixer),
6534 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6535 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6536 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6537 msm_routing_put_audio_mixer),
6538 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6539 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6540 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6541 msm_routing_put_audio_mixer),
6542 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6543 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6544 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6545 msm_routing_put_audio_mixer),
6546 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6547 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6548 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6549 msm_routing_put_audio_mixer),
6550 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6551 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6552 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6553 msm_routing_put_audio_mixer),
6554 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6555 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6556 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6557 msm_routing_put_audio_mixer),
6558 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6559 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6560 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6561 msm_routing_put_audio_mixer),
6562 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6563 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6564 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6565 msm_routing_put_audio_mixer),
6566 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6567 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6568 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6569 msm_routing_put_audio_mixer),
6570 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6571 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6572 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6573 msm_routing_put_audio_mixer),
6574 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6575 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6576 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6577 msm_routing_put_audio_mixer),
6578 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6579 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6580 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6581 msm_routing_put_audio_mixer),
6582 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6583 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6584 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6585 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306586 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6587 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6588 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6589 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306590};
6591
6592static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6593 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6594 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6595 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6596 msm_routing_put_audio_mixer),
6597 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6598 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6599 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6600 msm_routing_put_audio_mixer),
6601 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6602 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6603 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6604 msm_routing_put_audio_mixer),
6605 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6606 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6607 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6608 msm_routing_put_audio_mixer),
6609 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6610 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6611 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6612 msm_routing_put_audio_mixer),
6613 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6614 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6615 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6616 msm_routing_put_audio_mixer),
6617 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6618 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6619 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6620 msm_routing_put_audio_mixer),
6621 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6622 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6623 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6624 msm_routing_put_audio_mixer),
6625 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6626 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6627 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6628 msm_routing_put_audio_mixer),
6629 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6630 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6631 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6632 msm_routing_put_audio_mixer),
6633 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6634 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6635 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6636 msm_routing_put_audio_mixer),
6637 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6638 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6639 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6640 msm_routing_put_audio_mixer),
6641 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6642 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6643 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6644 msm_routing_put_audio_mixer),
6645 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6646 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6647 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6648 msm_routing_put_audio_mixer),
6649 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6650 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6651 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6652 msm_routing_put_audio_mixer),
6653 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6654 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6655 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6656 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306657 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6658 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6659 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6660 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306661};
6662
6663static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6664 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6665 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6666 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6667 msm_routing_put_audio_mixer),
6668 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6669 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6670 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6671 msm_routing_put_audio_mixer),
6672 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6673 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6674 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6675 msm_routing_put_audio_mixer),
6676 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6677 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6678 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6679 msm_routing_put_audio_mixer),
6680 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6681 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6682 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6683 msm_routing_put_audio_mixer),
6684 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6685 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6686 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6687 msm_routing_put_audio_mixer),
6688 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6689 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6690 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6691 msm_routing_put_audio_mixer),
6692 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6693 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6694 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6695 msm_routing_put_audio_mixer),
6696 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6697 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6698 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6699 msm_routing_put_audio_mixer),
6700 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6701 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6702 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6703 msm_routing_put_audio_mixer),
6704 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6705 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6706 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6707 msm_routing_put_audio_mixer),
6708 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6709 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6710 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6711 msm_routing_put_audio_mixer),
6712 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6713 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6714 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6715 msm_routing_put_audio_mixer),
6716 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6717 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6718 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6719 msm_routing_put_audio_mixer),
6720 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6721 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6722 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6723 msm_routing_put_audio_mixer),
6724 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6725 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6726 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6727 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306728 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6729 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6730 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6731 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306732};
6733
6734static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6735 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6736 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6737 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6738 msm_routing_put_audio_mixer),
6739 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6740 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6741 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6742 msm_routing_put_audio_mixer),
6743 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6744 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6745 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6746 msm_routing_put_audio_mixer),
6747 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6748 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6749 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6750 msm_routing_put_audio_mixer),
6751 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6752 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6753 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6754 msm_routing_put_audio_mixer),
6755 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6756 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6757 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6758 msm_routing_put_audio_mixer),
6759 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6760 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6761 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6762 msm_routing_put_audio_mixer),
6763 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6764 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6765 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6766 msm_routing_put_audio_mixer),
6767 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6768 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6769 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6770 msm_routing_put_audio_mixer),
6771 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6772 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6773 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6774 msm_routing_put_audio_mixer),
6775 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6776 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6777 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6778 msm_routing_put_audio_mixer),
6779 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6780 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6781 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6782 msm_routing_put_audio_mixer),
6783 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6784 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6785 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6786 msm_routing_put_audio_mixer),
6787 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6788 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6789 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6790 msm_routing_put_audio_mixer),
6791 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6792 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6793 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6794 msm_routing_put_audio_mixer),
6795 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6796 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6797 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6798 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306799 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6800 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6801 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6802 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306803};
6804
6805static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6806 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6807 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6808 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6809 msm_routing_put_audio_mixer),
6810 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6812 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
6814 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6815 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6816 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6817 msm_routing_put_audio_mixer),
6818 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6819 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6820 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6821 msm_routing_put_audio_mixer),
6822 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6823 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6824 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6825 msm_routing_put_audio_mixer),
6826 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6827 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6828 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6829 msm_routing_put_audio_mixer),
6830 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6831 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6832 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6833 msm_routing_put_audio_mixer),
6834 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6835 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6836 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6837 msm_routing_put_audio_mixer),
6838 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6839 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6840 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6841 msm_routing_put_audio_mixer),
6842 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6843 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6844 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6845 msm_routing_put_audio_mixer),
6846 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6847 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6848 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6849 msm_routing_put_audio_mixer),
6850 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6851 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6852 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6853 msm_routing_put_audio_mixer),
6854 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6855 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6856 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6857 msm_routing_put_audio_mixer),
6858 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6859 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6860 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6861 msm_routing_put_audio_mixer),
6862 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6863 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6864 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6865 msm_routing_put_audio_mixer),
6866 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6867 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6868 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6869 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306870 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6871 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6872 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6873 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306874};
6875
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306876static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006877 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6878 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306879 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006881 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6882 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306883 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006885 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6886 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306887 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006889 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6890 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306891 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006893 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6894 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306895 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006897 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6898 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306899 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006901 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6902 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306903 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006905 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6906 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306907 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006909 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6910 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306911 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006913 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6914 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306915 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006917 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6918 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306919 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006921 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6922 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306923 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006925 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6926 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306927 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006929 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6930 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306931 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006933 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6934 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306935 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006937 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6938 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306939 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6940 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306941 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6942 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6943 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6944 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306945};
6946
Surendar Karka3ef3d812018-09-28 18:52:35 +05306947static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6948 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6949 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6950 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6951 msm_routing_put_audio_mixer),
6952 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6953 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6954 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6955 msm_routing_put_audio_mixer),
6956 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6957 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6958 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6959 msm_routing_put_audio_mixer),
6960 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6961 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6962 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6963 msm_routing_put_audio_mixer),
6964 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6965 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6966 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6967 msm_routing_put_audio_mixer),
6968 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6969 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6970 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6971 msm_routing_put_audio_mixer),
6972 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6973 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6974 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6975 msm_routing_put_audio_mixer),
6976 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6977 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6978 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6979 msm_routing_put_audio_mixer),
6980 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6981 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6982 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6983 msm_routing_put_audio_mixer),
6984 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6985 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6986 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6987 msm_routing_put_audio_mixer),
6988 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6989 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6990 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6991 msm_routing_put_audio_mixer),
6992 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6993 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6994 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6995 msm_routing_put_audio_mixer),
6996 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6997 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6998 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6999 msm_routing_put_audio_mixer),
7000 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7001 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7002 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7003 msm_routing_put_audio_mixer),
7004 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7005 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7006 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7007 msm_routing_put_audio_mixer),
7008 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7009 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7010 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7011 msm_routing_put_audio_mixer),
7012 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7013 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7014 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7015 msm_routing_put_audio_mixer),
7016};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307017static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007018 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7019 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307020 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007022 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7023 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307024 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007026 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7027 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307028 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007030 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7031 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307032 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007034 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7035 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307036 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007038 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7039 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307040 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007042 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7043 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307044 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007046 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7047 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307048 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007050 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7051 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307052 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007054 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7055 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307056 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007058 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7059 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307060 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007062 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7063 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307064 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007066 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7067 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307068 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007070 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7071 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307072 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007074 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7075 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307076 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007078 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7079 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307080 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7081 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307082 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7083 MSM_BACKEND_DAI_USB_RX,
7084 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7085 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307086};
7087
7088static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007089 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7090 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307091 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007093 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7094 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307095 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007097 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7098 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307099 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007101 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7102 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307103 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007105 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7106 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307107 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007109 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7110 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307111 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007113 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7114 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307115 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007117 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7118 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307119 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007121 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7122 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307123 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007125 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7126 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307127 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007129 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7130 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307131 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007133 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7134 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307135 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007137 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7138 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307139 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007141 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7142 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307143 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007145 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7146 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307147 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007149 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7150 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307151 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007153 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7154 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307155 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007157 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7158 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307159 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007161 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7162 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307163 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7164 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307165 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7166 MSM_BACKEND_DAI_INT_BT_SCO_RX,
7167 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007169 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7170 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307171 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007173 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7174 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307175 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7176 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307177};
7178
7179static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007180 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7181 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307182 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007184 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7185 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307186 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007188 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7189 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307190 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007192 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7193 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307194 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007196 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7197 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307198 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007200 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7201 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307202 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007204 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7205 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307206 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007208 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7209 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307210 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007212 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7213 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307214 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007216 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7217 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307218 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007220 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7221 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307222 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007224 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7225 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307226 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007228 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7229 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307230 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007232 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7233 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307234 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007236 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7237 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307238 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007240 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7241 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307242 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7243 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307244 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7245 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
7246 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7247 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307248};
7249
7250static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007251 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307253 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007255 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7256 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307257 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007259 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307261 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007263 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7264 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307265 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007267 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7268 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307269 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007271 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7272 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307273 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007275 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7276 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307277 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007279 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7280 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307281 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007283 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7284 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307285 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007287 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7288 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307289 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007291 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7292 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307293 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007295 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7296 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307297 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007299 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7300 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307301 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007303 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7304 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307305 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007307 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7308 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307309 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007311 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7312 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307313 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007315 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7316 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307317 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007319 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7320 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307321 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007323 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7324 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307325 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7326 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307327 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7328 MSM_BACKEND_DAI_INT_FM_RX,
7329 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007331 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7332 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307333 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007335 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7336 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307337 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7338 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307339};
7340
7341static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007342 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307344 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007346 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7347 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307348 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007350 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7351 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307352 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007354 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7355 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307356 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007358 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7359 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307360 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007362 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7363 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307364 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007366 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7367 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307368 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007370 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7371 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307372 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007374 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7375 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307376 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007378 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7379 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307380 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007382 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7383 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307384 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007386 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7387 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307388 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007390 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7391 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307392 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007394 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7395 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307396 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007398 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7399 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307400 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007402 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7403 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307404 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007406 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7407 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307408 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007410 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7411 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307412 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007414 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7415 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307416 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7417 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307418 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7419 MSM_BACKEND_DAI_AFE_PCM_RX,
7420 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007422 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7423 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307424 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007426 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7427 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307428 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7429 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307430};
7431
7432static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007433 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7434 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307435 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007437 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307439 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007441 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7442 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307443 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007445 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7446 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307447 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007449 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7450 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307451 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007453 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7454 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307455 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007457 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7458 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307459 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007461 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7462 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307463 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007465 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7466 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307467 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007469 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7470 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307471 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007473 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7474 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307475 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007477 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7478 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307479 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007481 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7482 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307483 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007485 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7486 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307487 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007489 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7490 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307491 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007493 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7494 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307495 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007497 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7498 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307499 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007501 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7502 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307503 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007505 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7506 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307507 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7508 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007509 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7510 MSM_BACKEND_DAI_AUXPCM_RX,
7511 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7512 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307513 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7514 MSM_BACKEND_DAI_AUXPCM_RX,
7515 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007517 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7518 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307519 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007521 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7522 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307523 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7524 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307525};
7526
7527static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007528 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7529 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307530 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007532 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7533 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307534 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007536 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7537 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307538 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007540 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7541 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307542 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007544 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7545 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307546 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007548 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7549 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307550 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007552 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7553 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307554 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007556 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7557 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307558 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007560 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7561 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307562 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007564 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7565 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307566 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007568 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7569 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307570 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007572 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7573 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307574 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007576 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7577 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307578 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007580 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7581 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307582 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007584 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7585 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307586 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007588 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7589 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307590 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007592 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7593 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307594 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007596 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7597 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307598 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007600 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7601 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307602 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7603 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007604 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7605 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7606 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7607 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307608 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7609 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7610 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007612 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7613 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307614 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007616 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7617 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307618 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7619 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620};
7621
7622static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007623 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7624 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307625 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007627 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7628 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307629 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007631 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7632 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307633 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007635 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7636 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307637 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007639 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7640 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307641 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007643 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7644 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307645 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007647 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7648 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307649 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007651 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7652 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307653 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007655 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7656 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307657 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007659 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7660 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307661 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007663 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7664 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307665 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007667 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7668 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307669 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007671 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7672 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307673 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007675 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7676 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307677 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007679 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7680 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307681 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007683 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7684 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307685 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7686 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307687 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7688 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7689 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7690 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307691};
7692
7693static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007694 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7695 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307696 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007698 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7699 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307700 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007702 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7703 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307704 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007706 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7707 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307708 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007710 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7711 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307712 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007714 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7715 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307716 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007718 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7719 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307720 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007722 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7723 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307724 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007726 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7727 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307728 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007730 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7731 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307732 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007734 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7735 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307736 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007738 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7739 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307740 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007742 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7743 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307744 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007746 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7747 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307748 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007750 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7751 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307752 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007754 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7755 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307756 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7757 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307758 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7759 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7760 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7761 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307762};
7763
Rohit Kumara5077932017-09-10 22:05:05 +05307764static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007765 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7766 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307767 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007769 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7770 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307771 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007773 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7774 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307775 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007777 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7778 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307779 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007781 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7782 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307783 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007785 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7786 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307787 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007789 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7790 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307791 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007793 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7794 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307795 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007797 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7798 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307799 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007801 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7802 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307803 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007805 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7806 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307807 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007809 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7810 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307811 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007813 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7814 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307815 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007817 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7818 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307819 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007821 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7822 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307823 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007825 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7826 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307827 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7828 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307829 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7830 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7831 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7832 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307833};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307834static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007835 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7836 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307837 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007839 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7840 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307841 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007843 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7844 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307845 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007847 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7848 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307849 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007851 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7852 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307853 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007855 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7856 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307857 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007859 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7860 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307861 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007863 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7864 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307865 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007867 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7868 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307869 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007871 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7872 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307873 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007875 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7876 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307877 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007879 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7880 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307881 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007883 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7884 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307885 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007887 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7888 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307889 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007891 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7892 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307893 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007895 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7896 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307897 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7898 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007899 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7900 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7901 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7902 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307903};
7904
7905static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007906 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7907 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307908 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007910 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7911 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307912 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007914 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7915 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307916 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007918 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7919 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307920 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007922 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7923 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307924 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007926 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7927 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307928 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007930 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7931 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307932 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007934 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7935 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307936 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007938 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7939 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307940 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007942 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7943 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307944 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007946 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7947 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307948 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007950 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7951 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307952 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007954 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7955 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307956 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007958 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7959 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307960 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007962 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7963 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307964 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007966 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7967 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307968 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7969 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007970 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7971 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7972 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7973 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307974};
7975
7976static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007977 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7978 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307979 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007981 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7982 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307983 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007985 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7986 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307987 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007989 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7990 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307991 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007993 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7994 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307995 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007997 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7998 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307999 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008001 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8002 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308003 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008005 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8006 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308007 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008009 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8010 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308011 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008013 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8014 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308015 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008017 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8018 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308019 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008021 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8022 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308023 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008025 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8026 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308027 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008029 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8030 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308031 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008033 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8034 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308035 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008037 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8038 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308039 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8040 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008041 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8042 MSM_BACKEND_DAI_PRI_TDM_RX_2,
8043 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8044 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308045};
8046
8047static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008048 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8049 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308050 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008052 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8053 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308054 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008056 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8057 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308058 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008060 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8061 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308062 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008064 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8065 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308066 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008068 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8069 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308070 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008072 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8073 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308074 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008076 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8077 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308078 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008080 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8081 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308082 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008084 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8085 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308086 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008088 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8089 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308090 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008092 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8093 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308094 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008096 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8097 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308098 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008100 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8101 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308102 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008104 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8105 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308106 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008108 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8109 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308110 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8111 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008112 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8113 MSM_BACKEND_DAI_PRI_TDM_RX_3,
8114 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8115 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308116};
8117
8118static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008119 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8120 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308121 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008123 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8124 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308125 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008127 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8128 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308129 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008131 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8132 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308133 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008135 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8136 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308137 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008139 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8140 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308141 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008143 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8144 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308145 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008147 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8148 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308149 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008151 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8152 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308153 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008155 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8156 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308157 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008159 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8160 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308161 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008163 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8164 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308165 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008167 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8168 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308169 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008171 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8172 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308173 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008175 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8176 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308177 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008179 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8180 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308181 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8182 msm_routing_put_audio_mixer),
8183};
8184
8185static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008186 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8187 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308188 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008190 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8191 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308192 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008194 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8195 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308196 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008198 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8199 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308200 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008202 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8203 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308204 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008206 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8207 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308208 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008210 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8211 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308212 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008214 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8215 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308216 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008218 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8219 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308220 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008222 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8223 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308224 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008226 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8227 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308228 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008230 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8231 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308232 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008234 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8235 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308236 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008238 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8239 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308240 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008242 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8243 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308244 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008246 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8247 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308248 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8249 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008250 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8251 MSM_BACKEND_DAI_SEC_TDM_RX_0,
8252 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8253 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308254};
8255
8256static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008257 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8258 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308259 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008261 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8262 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308263 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008265 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8266 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308267 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008269 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8270 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308271 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008273 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8274 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308275 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008277 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8278 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308279 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008281 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8282 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308283 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008285 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8286 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308287 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008289 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8290 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308291 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008293 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8294 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308295 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008297 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8298 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308299 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008301 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8302 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308303 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008305 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8306 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308307 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008309 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8310 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308311 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008313 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8314 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308315 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008317 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8318 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308319 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8320 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008321 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8322 MSM_BACKEND_DAI_SEC_TDM_RX_1,
8323 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8324 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308325};
8326
8327static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008328 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8329 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308330 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008332 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8333 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308334 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008336 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8337 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308338 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008340 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8341 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308342 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008344 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8345 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308346 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008348 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8349 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308350 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008352 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8353 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308354 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008356 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8357 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308358 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008360 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8361 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308362 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008364 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8365 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308366 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008368 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8369 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308370 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008372 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8373 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308374 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008376 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8377 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308378 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008380 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8381 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308382 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008384 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8385 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308386 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008388 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8389 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308390 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8391 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008392 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8393 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8394 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8395 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308396};
8397
8398static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008399 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8400 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308401 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008403 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8404 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308405 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008407 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8408 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308409 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008411 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8412 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308413 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008415 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8416 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308417 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008419 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8420 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308421 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008423 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8424 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308425 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008427 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8428 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308429 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008431 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8432 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308433 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008435 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8436 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308437 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008439 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8440 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308441 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008443 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8444 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308445 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008447 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8448 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308449 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008451 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8452 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308453 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008455 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8456 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308457 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008459 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8460 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308461 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8462 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008463 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8464 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8465 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8466 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308467};
8468
8469static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008470 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8471 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308472 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008474 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8475 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308476 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008478 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8479 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308480 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008482 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8483 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308484 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008486 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8487 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308488 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008490 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8491 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308492 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008494 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8495 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308496 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008498 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8499 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308500 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008502 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8503 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308504 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008506 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8507 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308508 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008510 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8511 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308512 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008514 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8515 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308516 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008518 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8519 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308520 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008522 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8523 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308524 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008526 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8527 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308528 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008530 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8531 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308532 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8533 msm_routing_put_audio_mixer),
8534};
8535
8536static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008537 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8538 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308539 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008541 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8542 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308543 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008545 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8546 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308547 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008549 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8550 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308551 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008553 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8554 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308555 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008557 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8558 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308559 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008561 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8562 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308563 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008565 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8566 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308567 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008569 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8570 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308571 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008573 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8574 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308575 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008577 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8578 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308579 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008581 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8582 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308583 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008585 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8586 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308587 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008589 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8590 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308591 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008593 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8594 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308595 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008597 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8598 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308599 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8600 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008601 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8602 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8603 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8604 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308605};
8606
8607static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008608 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8609 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308610 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008612 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8613 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308614 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008616 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8617 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308618 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008620 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8621 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308622 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008624 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8625 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308626 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008628 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8629 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308630 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008632 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8633 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308634 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008636 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8637 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308638 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008640 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8641 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308642 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008644 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8645 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308646 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008648 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8649 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308650 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008652 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8653 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308654 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008656 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8657 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308658 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008660 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8661 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308662 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008664 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8665 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308666 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008668 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8669 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308670 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8671 msm_routing_put_audio_mixer),
8672};
8673
8674static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008675 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8676 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308677 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008679 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8680 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308681 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008683 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8684 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308685 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008687 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8688 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308689 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008691 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8692 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308693 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008695 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8696 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308697 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008699 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8700 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308701 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008703 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8704 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308705 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008707 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8708 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308709 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008711 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8712 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308713 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008715 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8716 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308717 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008719 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8720 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308721 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008723 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8724 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308725 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008727 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8728 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308729 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008731 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8732 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308733 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008735 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8736 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308737 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8738 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008739 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8740 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8741 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8742 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308743};
8744
8745static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008746 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8747 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308748 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008750 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8751 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308752 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008754 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8755 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308756 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008758 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8759 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308760 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008762 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8763 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308764 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008766 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8767 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308768 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008770 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8771 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308772 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008774 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8775 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308776 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008778 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8779 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308780 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008782 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8783 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308784 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008786 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8787 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308788 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008790 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8791 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308792 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008794 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8795 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308796 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008798 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8799 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308800 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008802 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8803 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308804 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008806 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8807 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308808 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8809 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008810 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8811 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8812 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8813 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308814};
8815
8816static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008817 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8818 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308819 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008821 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8822 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308823 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008825 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8826 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308827 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008829 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8830 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308831 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008833 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8834 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308835 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008837 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8838 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308839 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008841 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8842 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308843 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008845 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8846 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308847 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008849 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8850 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308851 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008853 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8854 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308855 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008857 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8858 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308859 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008861 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8862 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308863 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008865 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8866 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308867 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008869 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8870 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308871 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008873 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8874 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308875 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008877 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8878 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308879 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8880 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008881 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8882 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8883 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8884 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308885};
8886
8887static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008888 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8889 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308890 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008892 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8893 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308894 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008896 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8897 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308898 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008900 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8901 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308902 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008904 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8905 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308906 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008908 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8909 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308910 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008912 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8913 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308914 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008916 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8917 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308918 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008920 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8921 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308922 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008924 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8925 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308926 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008928 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8929 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308930 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008932 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8933 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308934 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008936 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8937 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308938 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008940 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8941 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308942 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008944 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8945 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308946 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008948 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8949 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308950 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8951 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008952 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8953 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8954 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8955 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308956};
8957
8958static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008959 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8960 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308961 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008963 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8964 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308965 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008967 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8968 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308969 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008971 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8972 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308973 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008975 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8976 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308977 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008979 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8980 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308981 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008983 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8984 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308985 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008987 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8988 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308989 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008991 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8992 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308993 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008995 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8996 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308997 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008999 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9000 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309001 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009003 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9004 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309005 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009007 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9008 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309009 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009011 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9012 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309013 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009015 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9016 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309017 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009019 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9020 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309021 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009023 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9024 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309025 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9026 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009027 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9028 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
9029 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9030 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309031};
9032
9033static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009034 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9035 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309036 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009038 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9039 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309040 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009042 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9043 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309044 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009046 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9047 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309048 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009050 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9051 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309052 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009054 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9055 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309056 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009058 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9059 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309060 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009062 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9063 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309064 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009066 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9067 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309068 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009070 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9071 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309072 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009074 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9075 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309076 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009078 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9079 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309080 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009082 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9083 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309084 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009086 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9087 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309088 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009090 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9091 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309092 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009094 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9095 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309096 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9097 msm_routing_put_audio_mixer),
9098};
9099
9100static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009101 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9102 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309103 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009105 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9106 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309107 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309111 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009113 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9114 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309115 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009117 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9118 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309119 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009121 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9122 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309123 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009125 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9126 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309127 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009129 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9130 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309131 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009133 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9134 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309135 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009137 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9138 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309139 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009141 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9142 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309143 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009145 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9146 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309147 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009149 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9150 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309151 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009153 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9154 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309155 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009157 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9158 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309159 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009161 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9162 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309163 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009165 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9166 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309167 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9168 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009169 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9170 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
9171 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9172 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309173};
9174
9175static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009176 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9177 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309178 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009180 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9181 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309182 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009184 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309186 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009188 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9189 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309190 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009192 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9193 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309194 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009196 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9197 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309198 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009200 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9201 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309202 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009204 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9205 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309206 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009208 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9209 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309210 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009212 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9213 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309214 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009216 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9217 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309218 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009220 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9221 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309222 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009224 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9225 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309226 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009228 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9229 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309230 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009232 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9233 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309234 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009236 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9237 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309238 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009240 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9241 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309242 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9243 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009244 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9245 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
9246 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9247 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309248};
9249
9250static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009251 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9252 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309253 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009255 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309257 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009259 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309261 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009263 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309265 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009267 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309269 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009271 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309273 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009275 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309277 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009279 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309281 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009283 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309285 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009287 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309289 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009291 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9292 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309293 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009295 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9296 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309297 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009299 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9300 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309301 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009303 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9304 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309305 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009307 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9308 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309309 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009311 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9312 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309313 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009315 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9316 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309317 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9318 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009319 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9320 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
9321 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9322 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309323};
9324
Rohit Kumara5077932017-09-10 22:05:05 +05309325static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009326 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9327 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309328 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009330 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9331 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309332 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009334 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309336 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009338 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9339 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309340 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009342 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9343 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309344 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009346 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9347 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309348 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009350 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9351 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309352 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009354 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9355 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309356 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009358 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009362 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309364 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009366 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9367 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309368 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009370 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9371 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309372 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009374 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9375 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309376 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009378 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9379 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309380 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009382 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9383 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309384 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009386 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9387 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309388 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009390 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9391 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309392 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9393 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009394 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9395 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9396 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9397 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309398};
9399
9400static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009401 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9402 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309403 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009405 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9406 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309407 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009409 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9410 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309411 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009413 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9414 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309415 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009417 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9418 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309419 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009421 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9422 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309423 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009425 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9426 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309427 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009429 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9430 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309431 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009433 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9434 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309435 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009437 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9438 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309439 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009441 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9442 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309443 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009445 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9446 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309447 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009449 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9450 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309451 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009453 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9454 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309455 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009457 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9458 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309459 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009461 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9462 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309463 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9464 msm_routing_put_audio_mixer),
9465};
9466
9467static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009468 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309470 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009472 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9473 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309474 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009476 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9477 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309478 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009480 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9481 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309482 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009484 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9485 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309486 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009488 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9489 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309490 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009492 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9493 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309494 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009496 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9497 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309498 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009500 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9501 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309502 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009504 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9505 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309506 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009508 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9509 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309510 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009512 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9513 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309514 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009516 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9517 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309518 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009520 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9521 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309522 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009524 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9525 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309526 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009528 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9529 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309530 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009532 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9533 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309534 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9535 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009536 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9537 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9538 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9539 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309540};
9541
9542static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009543 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9544 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309545 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009547 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9548 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309549 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009551 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9552 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309553 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009555 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9556 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309557 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009559 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9560 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309561 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009563 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9564 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309565 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009567 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9568 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309569 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009571 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9572 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309573 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009575 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9576 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309577 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009579 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9580 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309581 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009583 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9584 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309585 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009587 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9588 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309589 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009591 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9592 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309593 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009595 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9596 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309597 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009599 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9600 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309601 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009603 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9604 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309605 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009607 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9608 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309609 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9610 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009611 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9612 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9613 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9614 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309615};
9616
9617static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009618 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9619 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309620 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009622 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9623 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309624 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009626 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9627 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309628 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009630 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9631 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309632 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009634 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9635 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309636 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009638 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9639 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309640 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009642 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9643 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309644 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009646 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9647 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309648 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009650 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9651 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309652 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009654 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9655 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309656 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009658 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9659 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309660 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009662 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9663 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309664 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009666 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9667 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309668 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009670 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9671 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309672 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009674 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9675 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309676 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009678 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9679 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309680 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009682 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9683 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309684 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9685 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009686 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9687 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9688 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9689 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309690};
9691
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309692static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009693 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9694 MSM_BACKEND_DAI_PRI_I2S_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("MI2S_TX", SND_SOC_NOPM,
9698 MSM_BACKEND_DAI_MI2S_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("PRI_MI2S_TX", SND_SOC_NOPM,
9702 MSM_BACKEND_DAI_PRI_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
9706 MSM_BACKEND_DAI_QUATERNARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
9710 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
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("INT2_MI2S_TX", SND_SOC_NOPM,
9714 MSM_BACKEND_DAI_INT2_MI2S_TX,
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("INT3_MI2S_TX", SND_SOC_NOPM,
9718 MSM_BACKEND_DAI_INT3_MI2S_TX,
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("SEC_MI2S_TX", SND_SOC_NOPM,
9722 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
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("SLIM_0_TX", SND_SOC_NOPM,
9726 MSM_BACKEND_DAI_SLIMBUS_0_TX,
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),
Samyak Jain810e42a2019-01-07 17:53:34 +05309729 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9730 MSM_BACKEND_DAI_SLIMBUS_1_TX,
9731 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
9734 MSM_BACKEND_DAI_AUXPCM_TX,
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_AUX_PCM_UL_TX", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
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_AUXPCM_UL_TX", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9754 MSM_BACKEND_DAI_INT_BT_SCO_TX,
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("INTERNAL_FM_TX", SND_SOC_NOPM,
9758 MSM_BACKEND_DAI_INT_FM_TX,
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("AFE_PCM_TX", SND_SOC_NOPM,
9762 MSM_BACKEND_DAI_AFE_PCM_TX,
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("VOC_REC_DL", SND_SOC_NOPM,
9766 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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("VOC_REC_UL", SND_SOC_NOPM,
9770 MSM_BACKEND_DAI_INCALL_RECORD_TX,
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("SLIM_4_TX", SND_SOC_NOPM,
9774 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("SLIM_6_TX", SND_SOC_NOPM,
9778 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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_MI2S_TX", SND_SOC_NOPM,
9782 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_0", SND_SOC_NOPM,
9786 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_1", SND_SOC_NOPM,
9790 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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("PRI_TDM_TX_2", SND_SOC_NOPM,
9794 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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("PRI_TDM_TX_3", SND_SOC_NOPM,
9798 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009801 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9802 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309803 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009805 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9806 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309807 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009809 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9810 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309811 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009813 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9814 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309815 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009817 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9818 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309819 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009821 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9822 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309823 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009825 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9826 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309827 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009829 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9830 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309831 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009833 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9834 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309835 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009837 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9838 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309839 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009841 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9842 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309843 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009845 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9846 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309847 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009849 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9850 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309851 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009853 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9854 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309855 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009857 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9858 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309859 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009861 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9862 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309863 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009865 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9866 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309867 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009869 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9870 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309871 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009873 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9874 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309875 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9876 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309877 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9878 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9879 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9880 msm_routing_put_audio_mixer),
9881 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9882 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9883 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9884 msm_routing_put_audio_mixer),
9885 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9886 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9887 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9888 msm_routing_put_audio_mixer),
9889 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9890 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9891 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9892 msm_routing_put_audio_mixer),
9893 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9894 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9895 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9896 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009897 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9898 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9899 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9900 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309901 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9902 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9903 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9904 msm_routing_put_audio_mixer),
9905 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9906 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9907 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9908 msm_routing_put_audio_mixer),
9909 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9910 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9911 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9912 msm_routing_put_audio_mixer),
9913 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9914 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9915 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9916 msm_routing_put_audio_mixer),
9917 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9918 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9919 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9920 msm_routing_put_audio_mixer),
9921 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9922 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9923 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9924 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009925 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9926 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9927 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9928 msm_routing_put_audio_mixer),
9929 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9930 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9931 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9932 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309933 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9934 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9935 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9936 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309937 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9938 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9939 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9940 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309941};
9942
9943static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009944 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9945 MSM_BACKEND_DAI_INT_FM_TX,
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("MI2S_TX", SND_SOC_NOPM,
9949 MSM_BACKEND_DAI_MI2S_TX,
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("PRI_MI2S_TX", SND_SOC_NOPM,
9953 MSM_BACKEND_DAI_PRI_MI2S_TX,
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("SEC_MI2S_TX", SND_SOC_NOPM,
9957 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
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_MI2S_TX", SND_SOC_NOPM,
9961 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
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("INT2_MI2S_TX", SND_SOC_NOPM,
9965 MSM_BACKEND_DAI_INT2_MI2S_TX,
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("INT3_MI2S_TX", SND_SOC_NOPM,
9969 MSM_BACKEND_DAI_INT3_MI2S_TX,
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_MI2S_TX", SND_SOC_NOPM,
9973 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
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("SLIM_0_TX", SND_SOC_NOPM,
9977 MSM_BACKEND_DAI_SLIMBUS_0_TX,
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("SLIM_6_TX", SND_SOC_NOPM,
9981 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("SLIM_1_TX", SND_SOC_NOPM,
9985 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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_MI2S_TX", SND_SOC_NOPM,
9989 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_0", SND_SOC_NOPM,
9993 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_1", SND_SOC_NOPM,
9997 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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("PRI_TDM_TX_2", SND_SOC_NOPM,
10001 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010004 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10005 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010006 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010008 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10009 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010010 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010012 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10013 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010014 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010016 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10017 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010018 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010020 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10021 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010022 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010024 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10025 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010026 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010028 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10029 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010030 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010032 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10033 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010034 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010036 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10037 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010038 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010040 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10041 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010042 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010044 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10045 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010046 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010048 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10049 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010050 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010052 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10053 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010054 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010056 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10057 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010058 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010060 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10061 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010062 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010064 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10065 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010066 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010068 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10069 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010070 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010072 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10073 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010074 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010076 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10077 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010078 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10079 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010080 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10081 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10082 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10083 msm_routing_put_audio_mixer),
10084 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10085 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10086 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10087 msm_routing_put_audio_mixer),
10088 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10089 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10090 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10091 msm_routing_put_audio_mixer),
10092 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10093 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10094 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10095 msm_routing_put_audio_mixer),
10096 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10097 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10098 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10099 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010100 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10101 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10102 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10103 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010104 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10105 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10106 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10107 msm_routing_put_audio_mixer),
10108 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10109 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10110 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10111 msm_routing_put_audio_mixer),
10112 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10113 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10114 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10115 msm_routing_put_audio_mixer),
10116 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10117 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10118 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10119 msm_routing_put_audio_mixer),
10120 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10121 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10122 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10123 msm_routing_put_audio_mixer),
10124 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10125 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10126 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10127 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010128 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10129 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10130 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10131 msm_routing_put_audio_mixer),
10132 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10133 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10134 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10135 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010136 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10137 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10138 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10139 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010140 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10141 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10142 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10143 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010144};
10145
10146static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010147 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10148 MSM_BACKEND_DAI_SLIMBUS_0_TX,
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),
Samyak Jain810e42a2019-01-07 17:53:34 +053010151 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10152 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10153 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("INTERNAL_FM_TX", SND_SOC_NOPM,
10156 MSM_BACKEND_DAI_INT_FM_TX,
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("MI2S_TX", SND_SOC_NOPM,
10160 MSM_BACKEND_DAI_MI2S_TX,
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("AFE_PCM_TX", SND_SOC_NOPM,
10164 MSM_BACKEND_DAI_AFE_PCM_TX,
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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10168 MSM_BACKEND_DAI_INT_BT_SCO_TX,
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("AUX_PCM_TX", SND_SOC_NOPM,
10172 MSM_BACKEND_DAI_AUXPCM_TX,
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("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10176 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
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("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10180 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
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_AUX_PCM_TX", SND_SOC_NOPM,
10184 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
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("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10188 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +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("PRI_MI2S_TX", SND_SOC_NOPM,
10192 MSM_BACKEND_DAI_PRI_MI2S_TX,
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("TERT_MI2S_TX", SND_SOC_NOPM,
10196 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("INT2_MI2S_TX", SND_SOC_NOPM,
10200 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("INT3_MI2S_TX", SND_SOC_NOPM,
10204 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_0", SND_SOC_NOPM,
10208 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010209 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010211 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10212 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010213 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010215 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10216 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010217 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010219 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10220 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010221 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010223 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10224 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010225 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010227 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10228 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010229 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010231 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10232 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010233 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010235 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10236 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010237 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010239 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10240 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010241 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010243 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10244 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010245 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010247 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10248 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010249 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010251 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10252 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010253 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010255 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10256 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010257 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010259 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10260 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010261 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010263 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10264 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010265 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010267 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10268 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010269 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010271 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10272 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010273 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010275 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10276 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010277 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010279 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10280 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010281 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010283 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10284 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010285 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10286 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010287 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10288 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10289 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10290 msm_routing_put_audio_mixer),
10291 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10292 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10293 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10294 msm_routing_put_audio_mixer),
10295 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10296 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10297 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10298 msm_routing_put_audio_mixer),
10299 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10300 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10301 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10302 msm_routing_put_audio_mixer),
10303 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10304 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10305 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10306 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010307 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10308 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10309 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10310 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010311 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10312 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10313 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10314 msm_routing_put_audio_mixer),
10315 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10316 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10317 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10318 msm_routing_put_audio_mixer),
10319 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10320 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10321 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10322 msm_routing_put_audio_mixer),
10323 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10324 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10325 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10326 msm_routing_put_audio_mixer),
10327 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10328 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10329 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10330 msm_routing_put_audio_mixer),
10331 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10332 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10333 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10334 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010335 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10336 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10337 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10338 msm_routing_put_audio_mixer),
10339 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10340 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10341 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10342 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010343 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10344 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10345 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10346 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010347};
10348
10349static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010350 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10351 MSM_BACKEND_DAI_SLIMBUS_0_TX,
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),
Samyak Jain810e42a2019-01-07 17:53:34 +053010354 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10355 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10356 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("PRI_MI2S_TX", SND_SOC_NOPM,
10359 MSM_BACKEND_DAI_PRI_MI2S_TX,
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("INTERNAL_FM_TX", SND_SOC_NOPM,
10363 MSM_BACKEND_DAI_INT_FM_TX,
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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10367 MSM_BACKEND_DAI_INT_BT_SCO_TX,
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("AFE_PCM_TX", SND_SOC_NOPM,
10371 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("VOC_REC_DL", SND_SOC_NOPM,
10375 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("VOC_REC_UL", SND_SOC_NOPM,
10379 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("TERT_TDM_TX_0", SND_SOC_NOPM,
10383 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_0", SND_SOC_NOPM,
10387 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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("PRI_TDM_TX_1", SND_SOC_NOPM,
10391 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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("PRI_TDM_TX_2", SND_SOC_NOPM,
10395 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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("PRI_TDM_TX_3", SND_SOC_NOPM,
10399 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
10403 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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("SEC_TDM_TX_1", SND_SOC_NOPM,
10407 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010410 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10411 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010412 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010414 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10415 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010416 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010418 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10419 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010420 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010422 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10423 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010424 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010426 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10427 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010428 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010430 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10431 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010432 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010434 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10435 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010436 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010438 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10439 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010440 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010442 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10443 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010444 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010446 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10447 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010448 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010450 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10451 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010452 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010454 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10455 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010456 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010458 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10459 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010460 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010462 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10463 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010464 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010466 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10467 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010468 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010470 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10471 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010472 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010474 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10475 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010476 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010478 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10479 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010480 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010482 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10483 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010484 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10485 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010486 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10487 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10488 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10489 msm_routing_put_audio_mixer),
10490 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10491 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10492 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10493 msm_routing_put_audio_mixer),
10494 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10495 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10496 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10497 msm_routing_put_audio_mixer),
10498 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10499 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10500 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10501 msm_routing_put_audio_mixer),
10502 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10503 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10504 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10505 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010506 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10507 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10508 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10509 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010510 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10511 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10512 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10513 msm_routing_put_audio_mixer),
10514 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10515 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10516 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10517 msm_routing_put_audio_mixer),
10518 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10519 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10520 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10521 msm_routing_put_audio_mixer),
10522 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10523 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10524 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10525 msm_routing_put_audio_mixer),
10526 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10527 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10528 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10529 msm_routing_put_audio_mixer),
10530 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10531 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10532 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10533 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010534 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10535 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10536 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10537 msm_routing_put_audio_mixer),
10538 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10539 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10540 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10541 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010542 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10543 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10544 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10545 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010546};
10547
10548static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010549 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10550 MSM_BACKEND_DAI_SLIMBUS_0_TX,
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),
Samyak Jain810e42a2019-01-07 17:53:34 +053010553 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10554 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10555 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("INTERNAL_FM_TX", SND_SOC_NOPM,
10558 MSM_BACKEND_DAI_INT_FM_TX,
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("MI2S_TX", SND_SOC_NOPM,
10562 MSM_BACKEND_DAI_MI2S_TX,
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("AFE_PCM_TX", SND_SOC_NOPM,
10566 MSM_BACKEND_DAI_AFE_PCM_TX,
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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10570 MSM_BACKEND_DAI_INT_BT_SCO_TX,
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("AUX_PCM_UL_TX", SND_SOC_NOPM,
10574 MSM_BACKEND_DAI_AUXPCM_TX,
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("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10578 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
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("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10582 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
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_AUX_PCM_TX", SND_SOC_NOPM,
10586 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
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("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10590 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +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("PRI_MI2S_TX", SND_SOC_NOPM,
10594 MSM_BACKEND_DAI_PRI_MI2S_TX,
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("TERT_MI2S_TX", SND_SOC_NOPM,
10598 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("INT2_MI2S_TX", SND_SOC_NOPM,
10602 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("INT3_MI2S_TX", SND_SOC_NOPM,
10606 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_0", SND_SOC_NOPM,
10610 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_1", SND_SOC_NOPM,
10614 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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("PRI_TDM_TX_2", SND_SOC_NOPM,
10618 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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("PRI_TDM_TX_3", SND_SOC_NOPM,
10622 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
10626 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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("SEC_TDM_TX_1", SND_SOC_NOPM,
10630 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010633 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10634 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010635 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010637 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10638 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010639 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010641 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10642 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010643 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010645 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10646 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010647 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010649 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10650 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010651 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010653 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10654 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010655 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010657 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10658 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010659 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010661 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10662 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010663 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010665 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10666 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010667 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010669 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10670 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010671 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010673 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10674 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010675 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010677 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10678 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010679 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010681 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10682 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010683 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010685 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10686 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010687 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010689 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10690 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010691 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010693 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10694 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010695 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010697 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10698 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010699 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010701 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10702 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010703 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010705 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10706 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010707 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10708 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010709 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10710 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10711 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10712 msm_routing_put_audio_mixer),
10713 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10714 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10715 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10716 msm_routing_put_audio_mixer),
10717 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10718 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10719 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10720 msm_routing_put_audio_mixer),
10721 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10722 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10723 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10724 msm_routing_put_audio_mixer),
10725 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10726 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10727 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10728 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010729 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10730 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10731 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10732 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010733 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10734 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10735 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10736 msm_routing_put_audio_mixer),
10737 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10738 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10739 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10740 msm_routing_put_audio_mixer),
10741 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10742 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10743 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10744 msm_routing_put_audio_mixer),
10745 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10746 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10747 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10748 msm_routing_put_audio_mixer),
10749 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10750 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10751 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10752 msm_routing_put_audio_mixer),
10753 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10754 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10755 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10756 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010757 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10758 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10759 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10760 msm_routing_put_audio_mixer),
10761 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10762 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10763 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10764 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010765 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10766 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10767 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10768 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010769 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10770 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10771 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10772 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010773};
10774
10775static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010776 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10777 MSM_BACKEND_DAI_INT_FM_TX,
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("SLIM_0_TX", SND_SOC_NOPM,
10781 MSM_BACKEND_DAI_SLIMBUS_0_TX,
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),
Samyak Jain810e42a2019-01-07 17:53:34 +053010784 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10785 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10786 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("PRI_MI2S_TX", SND_SOC_NOPM,
10789 MSM_BACKEND_DAI_PRI_MI2S_TX,
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("SEC_MI2S_TX", SND_SOC_NOPM,
10793 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
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_MI2S_TX", SND_SOC_NOPM,
10797 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
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("INT2_MI2S_TX", SND_SOC_NOPM,
10801 MSM_BACKEND_DAI_INT2_MI2S_TX,
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("INT3_MI2S_TX", SND_SOC_NOPM,
10805 MSM_BACKEND_DAI_INT3_MI2S_TX,
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_MI2S_TX", SND_SOC_NOPM,
10809 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
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("QUIN_MI2S_TX", SND_SOC_NOPM,
10813 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +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("AUX_PCM_UL_TX", SND_SOC_NOPM,
10817 MSM_BACKEND_DAI_AUXPCM_TX,
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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10821 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10825 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10829 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_0", SND_SOC_NOPM,
10833 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_1", SND_SOC_NOPM,
10837 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010840 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10841 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010842 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010844 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10845 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010846 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010848 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10849 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010850 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010852 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10853 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010854 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010856 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10857 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010858 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010860 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10861 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010862 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010864 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10865 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010866 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010868 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10869 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010870 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010872 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10873 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010874 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010876 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10877 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010878 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010880 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10881 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010882 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010884 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10885 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010886 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010888 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10889 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010890 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010892 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10893 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010894 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010896 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10897 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010898 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010900 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10901 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010902 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010904 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10905 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010906 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010908 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10909 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010910 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010912 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10913 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010914 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10915 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010916 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10917 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10918 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10919 msm_routing_put_audio_mixer),
10920 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10921 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10922 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10923 msm_routing_put_audio_mixer),
10924 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10925 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10926 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10927 msm_routing_put_audio_mixer),
10928 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10929 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10930 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10931 msm_routing_put_audio_mixer),
10932 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10933 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10934 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10935 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010936 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10937 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10938 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10939 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010940 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10941 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10942 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10943 msm_routing_put_audio_mixer),
10944 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10945 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10946 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10947 msm_routing_put_audio_mixer),
10948 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10949 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10950 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10951 msm_routing_put_audio_mixer),
10952 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10953 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10954 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10955 msm_routing_put_audio_mixer),
10956 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10957 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10958 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10959 msm_routing_put_audio_mixer),
10960 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10961 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10962 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10963 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010964 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10965 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10966 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10967 msm_routing_put_audio_mixer),
10968 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10969 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10970 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10971 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010972 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10973 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10974 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10975 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010976};
10977
10978static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010979 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10980 MSM_BACKEND_DAI_SLIMBUS_0_TX,
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),
Samyak Jain810e42a2019-01-07 17:53:34 +053010983 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10984 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10985 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("PRI_MI2S_TX", SND_SOC_NOPM,
10988 MSM_BACKEND_DAI_PRI_MI2S_TX,
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("SEC_MI2S_TX", SND_SOC_NOPM,
10992 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
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_MI2S_TX", SND_SOC_NOPM,
10996 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
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("INT2_MI2S_TX", SND_SOC_NOPM,
11000 MSM_BACKEND_DAI_INT2_MI2S_TX,
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("INT3_MI2S_TX", SND_SOC_NOPM,
11004 MSM_BACKEND_DAI_INT3_MI2S_TX,
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_MI2S_TX", SND_SOC_NOPM,
11008 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
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("INTERNAL_FM_TX", SND_SOC_NOPM,
11012 MSM_BACKEND_DAI_INT_FM_TX,
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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11016 MSM_BACKEND_DAI_INT_BT_SCO_TX,
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("AFE_PCM_TX", SND_SOC_NOPM,
11020 MSM_BACKEND_DAI_AFE_PCM_TX,
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("VOC_REC_DL", SND_SOC_NOPM,
11024 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("VOC_REC_UL", SND_SOC_NOPM,
11028 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("SLIM_6_TX", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_0", SND_SOC_NOPM,
11036 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_1", SND_SOC_NOPM,
11040 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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("PRI_TDM_TX_2", SND_SOC_NOPM,
11044 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011047 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11048 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011049 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011051 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11052 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011053 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011055 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11056 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011057 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011059 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11060 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011061 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011063 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11064 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011065 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011067 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11068 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011069 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011071 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11072 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011073 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011075 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11076 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011077 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011079 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11080 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011081 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011083 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11084 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011085 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011087 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011089 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011091 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11092 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011093 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011095 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11096 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011097 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011099 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11100 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011101 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011103 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11104 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011105 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011107 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11108 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011109 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011111 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11112 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011113 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011115 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11116 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011117 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011119 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11120 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011121 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11122 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011123 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11124 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11125 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11126 msm_routing_put_audio_mixer),
11127 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11129 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11130 msm_routing_put_audio_mixer),
11131 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11133 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11134 msm_routing_put_audio_mixer),
11135 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11136 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11137 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11138 msm_routing_put_audio_mixer),
11139 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11140 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11141 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11142 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011143 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11144 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11145 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11146 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011147 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11148 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11149 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11150 msm_routing_put_audio_mixer),
11151 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11153 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11154 msm_routing_put_audio_mixer),
11155 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11156 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11157 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11158 msm_routing_put_audio_mixer),
11159 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11160 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11161 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11162 msm_routing_put_audio_mixer),
11163 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11164 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11165 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11166 msm_routing_put_audio_mixer),
11167 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11168 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11169 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11170 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011171 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11172 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11173 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11174 msm_routing_put_audio_mixer),
11175 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11176 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11177 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11178 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011179 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11180 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11181 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11182 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011183 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11184 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11185 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11186 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011187};
11188
Asish Bhattacharya34504582017-08-08 12:55:01 +053011189static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011190 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11191 MSM_BACKEND_DAI_SLIMBUS_0_TX,
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),
Samyak Jain810e42a2019-01-07 17:53:34 +053011194 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11195 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11196 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("PRI_MI2S_TX", SND_SOC_NOPM,
11199 MSM_BACKEND_DAI_PRI_MI2S_TX,
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("SEC_MI2S_TX", SND_SOC_NOPM,
11203 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
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_MI2S_TX", SND_SOC_NOPM,
11207 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
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("INT2_MI2S_TX", SND_SOC_NOPM,
11211 MSM_BACKEND_DAI_INT2_MI2S_TX,
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("INT3_MI2S_TX", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_INT3_MI2S_TX,
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_MI2S_TX", SND_SOC_NOPM,
11219 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
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("INTERNAL_FM_TX", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_INT_FM_TX,
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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_INT_BT_SCO_TX,
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("AFE_PCM_TX", SND_SOC_NOPM,
11231 MSM_BACKEND_DAI_AFE_PCM_TX,
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("VOC_REC_DL", SND_SOC_NOPM,
11235 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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("VOC_REC_UL", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_INCALL_RECORD_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("SLIM_6_TX", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_SLIMBUS_6_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("PRI_TDM_TX_0", SND_SOC_NOPM,
11247 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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("PRI_TDM_TX_1", SND_SOC_NOPM,
11251 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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("PRI_TDM_TX_2", SND_SOC_NOPM,
11255 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011258 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11259 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011260 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011262 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11263 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011264 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011266 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11267 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011268 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011270 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11271 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011272 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011274 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11275 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011276 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011278 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11279 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011280 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011282 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11283 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011284 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011286 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11287 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011288 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011290 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11291 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011292 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011294 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11295 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011296 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011298 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11299 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011300 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011302 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11303 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011304 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011306 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11307 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011308 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011310 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11311 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011312 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011314 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11315 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011316 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011318 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11319 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011320 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011322 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11323 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011324 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011326 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11327 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011328 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011330 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11331 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011332 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11333 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011334 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11335 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11336 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11337 msm_routing_put_audio_mixer),
11338 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11339 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11340 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11341 msm_routing_put_audio_mixer),
11342 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11343 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11344 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11345 msm_routing_put_audio_mixer),
11346 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11347 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11348 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11349 msm_routing_put_audio_mixer),
11350 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11351 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11352 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11353 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011354 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11355 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11356 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11357 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011358 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11359 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11360 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11361 msm_routing_get_audio_mixer,
11362 msm_routing_put_audio_mixer),
11363 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11364 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11365 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11366 msm_routing_get_audio_mixer,
11367 msm_routing_put_audio_mixer),
11368 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11369 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11370 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11371 msm_routing_get_audio_mixer,
11372 msm_routing_put_audio_mixer),
11373 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11374 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11375 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11376 msm_routing_get_audio_mixer,
11377 msm_routing_put_audio_mixer),
11378 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11379 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11380 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11381 msm_routing_get_audio_mixer,
11382 msm_routing_put_audio_mixer),
11383 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11384 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11385 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11386 msm_routing_get_audio_mixer,
11387 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011388 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11389 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11390 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11391 msm_routing_put_audio_mixer),
11392 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11393 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11394 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11395 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011396 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11397 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11398 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11399 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011400 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11401 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11402 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11403 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053011404};
11405
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011406static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011407 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11408 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011409 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11410 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011411 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11412 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11413 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011415 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11416 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011417 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011419 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11420 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011421 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011423 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11424 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011425 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011427 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11428 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011429 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011431 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11432 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011433 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011435 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11436 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011437 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011439 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11440 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011441 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011443 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11444 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011445 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011447 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11448 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011449 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011451 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11452 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011453 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011455 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11456 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011457 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011459 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11460 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011461 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011463 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11464 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011465 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011467 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11468 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011469 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011471 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11472 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011473 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011475 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11476 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011477 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011479 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11480 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011481 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011483 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11484 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011485 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011487 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11488 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011489 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11490 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011491 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11492 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11493 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11494 msm_routing_put_audio_mixer),
11495 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11496 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11497 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11498 msm_routing_put_audio_mixer),
11499 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11500 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11501 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11502 msm_routing_put_audio_mixer),
11503 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11504 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11505 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11506 msm_routing_put_audio_mixer),
11507 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11508 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11509 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11510 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011511 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11512 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11513 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11514 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011515 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11516 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11517 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11518 msm_routing_put_audio_mixer),
11519 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11520 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11521 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11522 msm_routing_put_audio_mixer),
11523 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11524 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11525 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11526 msm_routing_put_audio_mixer),
11527 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11528 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11529 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11530 msm_routing_put_audio_mixer),
11531 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11532 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11533 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11534 msm_routing_put_audio_mixer),
11535 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11536 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11537 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11538 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011539 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11540 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11541 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11542 msm_routing_put_audio_mixer),
11543 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11544 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11545 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11546 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011547 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11548 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11549 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11550 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011551};
11552
Laxminath Kasam38070be2017-08-17 18:21:59 +053011553static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011554 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11555 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011556 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11557 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011558 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11559 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11560 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("PRI_MI2S_TX", SND_SOC_NOPM,
11563 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011564 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("INTERNAL_FM_TX", SND_SOC_NOPM,
11567 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011568 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11571 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011572 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("AFE_PCM_TX", SND_SOC_NOPM,
11575 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011576 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("VOC_REC_DL", SND_SOC_NOPM,
11579 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011580 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("VOC_REC_UL", SND_SOC_NOPM,
11583 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011584 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011586 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11587 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011588 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011590 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11591 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011592 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011594 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11595 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011596 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011598 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11599 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011600 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011602 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11603 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011604 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011606 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11607 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011608 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011610 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11611 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011612 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011614 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11615 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011616 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011618 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11619 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011620 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011622 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11623 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011624 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011626 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11627 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011628 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011630 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11631 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011632 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011634 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11635 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011636 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011638 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11639 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011640 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011642 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011644 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011646 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011648 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011650 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011652 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011654 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011656 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011658 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011660 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011662 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11664 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
11666 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11668 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
11670 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11672 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
11674 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11676 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
11678 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11680 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011682 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11684 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011686 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11688 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11689 msm_routing_get_audio_mixer,
11690 msm_routing_put_audio_mixer),
11691 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11692 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11693 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11694 msm_routing_get_audio_mixer,
11695 msm_routing_put_audio_mixer),
11696 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11697 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11698 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11699 msm_routing_get_audio_mixer,
11700 msm_routing_put_audio_mixer),
11701 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11702 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11703 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11704 msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
11706 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11708 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11709 msm_routing_get_audio_mixer,
11710 msm_routing_put_audio_mixer),
11711 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11712 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11713 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11714 msm_routing_get_audio_mixer,
11715 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011716 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11717 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11718 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11719 msm_routing_put_audio_mixer),
11720 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11721 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11722 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11723 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011724 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11725 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11726 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11727 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011728 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11729 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11730 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11731 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011732};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011733static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011734 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11735 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011736 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11737 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011738 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11739 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11740 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011742 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11743 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011744 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011746 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11747 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011748 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011750 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011752 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011754 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11755 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011756 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011758 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11759 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011760 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011762 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11763 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011764 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011766 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11767 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011768 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11769 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011770 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11771 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11772 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11773 msm_routing_put_audio_mixer),
11774 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11775 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11776 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11777 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011778 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11779 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11780 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11781 msm_routing_put_audio_mixer),
11782 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11783 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11784 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11785 msm_routing_put_audio_mixer),
11786 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11787 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11788 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11789 msm_routing_put_audio_mixer),
11790 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11791 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11792 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11793 msm_routing_put_audio_mixer),
11794 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11795 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11796 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11797 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011798 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11799 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11800 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11801 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011802 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11803 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11804 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11805 msm_routing_get_audio_mixer,
11806 msm_routing_put_audio_mixer),
11807 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11808 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11809 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11810 msm_routing_get_audio_mixer,
11811 msm_routing_put_audio_mixer),
11812 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11813 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11814 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11815 msm_routing_get_audio_mixer,
11816 msm_routing_put_audio_mixer),
11817 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11818 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11819 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11820 msm_routing_get_audio_mixer,
11821 msm_routing_put_audio_mixer),
11822 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11823 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11824 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11825 msm_routing_get_audio_mixer,
11826 msm_routing_put_audio_mixer),
11827 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11828 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11829 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11830 msm_routing_get_audio_mixer,
11831 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011832 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11833 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11834 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11835 msm_routing_put_audio_mixer),
11836 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11837 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11838 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11839 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011840 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11841 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11842 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11843 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011844};
11845
11846static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011847 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11848 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011849 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11850 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011851 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11852 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11853 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011855 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11856 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011857 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011859 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11860 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011861 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11862 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011863 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11864 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11865 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11866 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011867 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11868 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11869 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011871 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11872 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011873 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011875 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11876 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011877 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011879 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11880 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011881 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011883 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11884 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011885 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011887 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11888 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011889 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011891 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11892 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011893 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11894 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011895 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11896 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11897 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11898 msm_routing_put_audio_mixer),
11899 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11900 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11901 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11902 msm_routing_put_audio_mixer),
11903 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11904 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11905 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11906 msm_routing_put_audio_mixer),
11907 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11908 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11909 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11910 msm_routing_put_audio_mixer),
11911 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11912 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11913 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11914 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011915 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11916 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11917 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11918 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011919 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11921 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11922 msm_routing_get_audio_mixer,
11923 msm_routing_put_audio_mixer),
11924 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11926 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11927 msm_routing_get_audio_mixer,
11928 msm_routing_put_audio_mixer),
11929 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11930 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11931 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11932 msm_routing_get_audio_mixer,
11933 msm_routing_put_audio_mixer),
11934 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11935 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11936 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11937 msm_routing_get_audio_mixer,
11938 msm_routing_put_audio_mixer),
11939 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11940 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11941 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11942 msm_routing_get_audio_mixer,
11943 msm_routing_put_audio_mixer),
11944 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11946 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11947 msm_routing_get_audio_mixer,
11948 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011949 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11950 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11951 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11952 msm_routing_put_audio_mixer),
11953 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11954 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11955 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11956 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011957 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11958 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11959 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11960 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011961};
11962
11963static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011964 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11965 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011966 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11967 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011968 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11969 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11970 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011972 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11973 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011974 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011976 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11977 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011978 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011980 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11981 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011982 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011984 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11985 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011986 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011988 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11989 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011990 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011992 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11993 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011994 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011996 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11997 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011998 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11999 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012000 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12001 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12002 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12003 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012004 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12005 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12006 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12007 msm_routing_put_audio_mixer),
12008 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12009 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12010 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12011 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012012 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12013 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12014 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12015 msm_routing_put_audio_mixer),
12016 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12017 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12018 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12019 msm_routing_put_audio_mixer),
12020 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12021 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12022 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12023 msm_routing_put_audio_mixer),
12024 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12025 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12026 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12027 msm_routing_put_audio_mixer),
12028 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12029 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12030 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12031 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012032 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12033 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12034 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12035 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012036 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12037 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12038 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
12039 msm_routing_get_audio_mixer,
12040 msm_routing_put_audio_mixer),
12041 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12042 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12043 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
12044 msm_routing_get_audio_mixer,
12045 msm_routing_put_audio_mixer),
12046 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12047 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12048 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
12049 msm_routing_get_audio_mixer,
12050 msm_routing_put_audio_mixer),
12051 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12052 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12053 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
12054 msm_routing_get_audio_mixer,
12055 msm_routing_put_audio_mixer),
12056 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12057 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12058 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
12059 msm_routing_get_audio_mixer,
12060 msm_routing_put_audio_mixer),
12061 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12062 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12063 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
12064 msm_routing_get_audio_mixer,
12065 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012066 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12067 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12068 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12069 msm_routing_put_audio_mixer),
12070 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12071 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12072 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12073 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012074 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12075 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12076 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12077 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012078};
12079
12080static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012081 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12082 MSM_BACKEND_DAI_PRI_MI2S_TX,
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("SEC_MI2S_TX", SND_SOC_NOPM,
12086 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
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("TERT_MI2S_TX", SND_SOC_NOPM,
12090 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("QUAT_MI2S_TX", SND_SOC_NOPM,
12094 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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_MI2S_TX", SND_SOC_NOPM,
12098 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
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("PRI_TDM_TX_0", SND_SOC_NOPM,
12102 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012103 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012105 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12106 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012107 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012109 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12110 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012111 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012113 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12114 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012115 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012117 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12118 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012119 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012121 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12122 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012123 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012125 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12126 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012127 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012129 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12130 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012131 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012133 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12134 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012135 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012137 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12138 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012139 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012141 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12142 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012143 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012145 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12146 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012147 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012149 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12150 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012151 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012153 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12154 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012155 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012157 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12158 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012159 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012161 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12162 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012163 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012165 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12166 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012167 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012169 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12170 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012171 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012173 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12174 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012175 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012177 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12178 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012179 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12180 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012181 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12182 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12183 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12184 msm_routing_put_audio_mixer),
12185 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12186 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12187 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12188 msm_routing_put_audio_mixer),
12189 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12190 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12191 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12192 msm_routing_put_audio_mixer),
12193 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12194 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12195 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12196 msm_routing_put_audio_mixer),
12197 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12198 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12199 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12200 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012201 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12202 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12203 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12204 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012205 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12206 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12207 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12208 msm_routing_put_audio_mixer),
12209 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12210 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12211 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12212 msm_routing_put_audio_mixer),
12213 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12214 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12215 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12216 msm_routing_put_audio_mixer),
12217 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12218 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12219 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12220 msm_routing_put_audio_mixer),
12221 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12222 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12223 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12224 msm_routing_put_audio_mixer),
12225 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12226 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12227 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12228 msm_routing_put_audio_mixer),
12229 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12230 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12231 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12232 msm_routing_put_audio_mixer),
12233 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12234 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12235 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12236 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012237 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12238 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12239 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12240 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070012241};
12242
12243static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
12244 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12245 MSM_BACKEND_DAI_AUXPCM_TX,
12246 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12247 msm_routing_put_audio_mixer),
12248 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12249 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
12250 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12251 msm_routing_put_audio_mixer),
12252 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12253 MSM_BACKEND_DAI_PRI_TDM_TX_0,
12254 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12255 msm_routing_put_audio_mixer),
12256 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12257 MSM_BACKEND_DAI_PRI_TDM_TX_1,
12258 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12259 msm_routing_put_audio_mixer),
12260 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12261 MSM_BACKEND_DAI_PRI_TDM_TX_2,
12262 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12263 msm_routing_put_audio_mixer),
12264 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12265 MSM_BACKEND_DAI_PRI_TDM_TX_3,
12266 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12267 msm_routing_put_audio_mixer),
12268 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12269 MSM_BACKEND_DAI_SEC_TDM_TX_0,
12270 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12271 msm_routing_put_audio_mixer),
12272 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12273 MSM_BACKEND_DAI_SEC_TDM_TX_1,
12274 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12275 msm_routing_put_audio_mixer),
12276 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12277 MSM_BACKEND_DAI_SEC_TDM_TX_2,
12278 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12279 msm_routing_put_audio_mixer),
12280 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12281 MSM_BACKEND_DAI_SEC_TDM_TX_3,
12282 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12283 msm_routing_put_audio_mixer),
12284 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12285 MSM_BACKEND_DAI_TERT_TDM_TX_0,
12286 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12287 msm_routing_put_audio_mixer),
12288 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12289 MSM_BACKEND_DAI_TERT_TDM_TX_1,
12290 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12291 msm_routing_put_audio_mixer),
12292 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12293 MSM_BACKEND_DAI_TERT_TDM_TX_2,
12294 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12295 msm_routing_put_audio_mixer),
12296 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12297 MSM_BACKEND_DAI_TERT_TDM_TX_3,
12298 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12299 msm_routing_put_audio_mixer),
12300 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12301 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
12302 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12303 msm_routing_put_audio_mixer),
12304 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12305 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
12306 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12307 msm_routing_put_audio_mixer),
12308 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12309 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
12310 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12311 msm_routing_put_audio_mixer),
12312 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12313 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
12314 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12315 msm_routing_put_audio_mixer),
12316 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12317 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
12318 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12319 msm_routing_put_audio_mixer),
12320 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12321 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
12322 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12323 msm_routing_put_audio_mixer),
12324 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12325 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
12326 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12327 msm_routing_put_audio_mixer),
12328 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12329 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
12330 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12331 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012332 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012333 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12334 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012335 msm_routing_put_audio_mixer),
12336 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012337 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12338 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012339 msm_routing_put_audio_mixer),
12340 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012341 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12342 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012343 msm_routing_put_audio_mixer),
12344 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012345 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12346 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012347 msm_routing_put_audio_mixer),
12348 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012349 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12350 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012351 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012352 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12353 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12354 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12355 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012356 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012357 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12358 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12359 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012360 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012361 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12362 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12363 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012364 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012365 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12366 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12367 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012368 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012369 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12370 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12371 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012372 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012373 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12374 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12375 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012376 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012377 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12378 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12379 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012380 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12381 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012382 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012383 msm_routing_put_audio_mixer),
12384 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12385 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012386 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012387 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012388 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12389 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12390 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12391 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012392};
12393
Surendar Karkac1cde372018-08-14 18:56:24 +053012394static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
12395 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12396 MSM_BACKEND_DAI_SLIMBUS_0_TX,
12397 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12398 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012399 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12400 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12401 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12402 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012403 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12404 MSM_BACKEND_DAI_SLIMBUS_6_TX,
12405 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12406 msm_routing_put_audio_mixer),
12407 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12408 MSM_BACKEND_DAI_SLIMBUS_7_TX,
12409 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12410 msm_routing_put_audio_mixer),
12411 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12412 MSM_BACKEND_DAI_PRI_MI2S_TX,
12413 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12414 msm_routing_put_audio_mixer),
12415 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12416 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12417 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12418 msm_routing_put_audio_mixer),
12419 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12420 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12421 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12422 msm_routing_put_audio_mixer),
12423 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12424 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12425 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12426 msm_routing_put_audio_mixer),
12427 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12428 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
12429 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12430 msm_routing_put_audio_mixer),
12431 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12432 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12433 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12434 msm_routing_put_audio_mixer),
12435 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12436 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12437 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12438 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012439 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12440 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12441 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12442 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012443 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12444 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12445 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12446 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012447};
12448
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012449static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012450 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12451 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012452 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12453 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012454 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12455 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12456 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012458 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12459 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012460 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012462 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12463 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012464 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012466 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012468 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012470 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12471 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012472 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012474 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12475 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012476 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012478 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12479 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012480 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012482 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12483 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012484 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12485 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012486 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12487 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12488 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12489 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012490 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12491 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12492 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12493 msm_routing_put_audio_mixer),
12494 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12495 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12496 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12497 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012498 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12499 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12500 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12501 msm_routing_put_audio_mixer),
12502 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12503 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12504 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12505 msm_routing_put_audio_mixer),
12506 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12507 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12508 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12509 msm_routing_put_audio_mixer),
12510 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12511 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12512 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12513 msm_routing_put_audio_mixer),
12514 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12515 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12516 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12517 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012518 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12519 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12520 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12521 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012522 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12523 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12524 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12525 msm_routing_get_audio_mixer,
12526 msm_routing_put_audio_mixer),
12527 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12528 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12529 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12530 msm_routing_get_audio_mixer,
12531 msm_routing_put_audio_mixer),
12532 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12533 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12534 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12535 msm_routing_get_audio_mixer,
12536 msm_routing_put_audio_mixer),
12537 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12538 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12539 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12540 msm_routing_get_audio_mixer,
12541 msm_routing_put_audio_mixer),
12542 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12543 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12544 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12545 msm_routing_get_audio_mixer,
12546 msm_routing_put_audio_mixer),
12547 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12548 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12549 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12550 msm_routing_get_audio_mixer,
12551 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012552 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12553 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12554 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12555 msm_routing_put_audio_mixer),
12556 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12557 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12558 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12559 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012560 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12561 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12562 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12563 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012564};
12565
12566static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012567 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12568 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012569 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12570 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012571 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12572 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12573 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012575 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12576 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012577 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012579 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12580 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012581 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012583 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12584 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012585 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012587 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12588 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012589 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012591 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12592 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012593 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012595 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12596 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012597 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012599 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12600 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012601 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12602 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012603 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12604 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12605 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12606 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012607 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12608 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12609 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12610 msm_routing_put_audio_mixer),
12611 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12612 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12613 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12614 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012615 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12616 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12617 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12618 msm_routing_put_audio_mixer),
12619 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12620 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12621 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12622 msm_routing_put_audio_mixer),
12623 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12624 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12625 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12626 msm_routing_put_audio_mixer),
12627 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12628 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12629 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12630 msm_routing_put_audio_mixer),
12631 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12632 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12633 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12634 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012635 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12636 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12637 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12638 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012639 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12640 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12641 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12642 msm_routing_get_audio_mixer,
12643 msm_routing_put_audio_mixer),
12644 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12645 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12646 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12647 msm_routing_get_audio_mixer,
12648 msm_routing_put_audio_mixer),
12649 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12650 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12651 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12652 msm_routing_get_audio_mixer,
12653 msm_routing_put_audio_mixer),
12654 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12655 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12656 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12657 msm_routing_get_audio_mixer,
12658 msm_routing_put_audio_mixer),
12659 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12660 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12661 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12662 msm_routing_get_audio_mixer,
12663 msm_routing_put_audio_mixer),
12664 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12665 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12666 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12667 msm_routing_get_audio_mixer,
12668 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012669 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12670 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12671 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12672 msm_routing_put_audio_mixer),
12673 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12674 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12675 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12676 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012677 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12678 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12679 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12680 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012681};
12682
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012683static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012684 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12685 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012686 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12687 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012688 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12689 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012690 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12691 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012692 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12693 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012694 MSM_FRONTEND_DAI_VOICEMMODE2, 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,
12697 MSM_BACKEND_DAI_PRI_I2S_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,
12701 MSM_BACKEND_DAI_PRI_I2S_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),
12704};
12705
12706static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012707 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12708 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012709 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12710 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012711 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12712 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012713 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12714 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012715 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12716 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012717 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12718 msm_routing_put_voice_mixer),
12719};
12720
12721static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012722 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12723 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012724 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12725 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070012726 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
12727 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
12728 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
12729 msm_routing_put_voice_mixer),
12730 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
12731 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
12732 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
12733 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012734 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12735 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012736 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12737 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012738 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12739 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012740 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12741 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012742 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12743 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012744 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12745 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012746 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12747 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012748 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12749 msm_routing_put_voice_mixer),
12750};
12751
12752static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012753 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12754 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012755 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12756 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012757 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12758 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012759 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12760 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012761 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12762 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012763 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12764 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012765 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12766 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012767 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12768 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012769 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12770 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012771 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12772 msm_routing_put_voice_mixer),
12773};
12774
12775static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012776 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12777MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012778 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12779 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012780 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12781MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012782 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12783 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012784 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12785MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012786 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12787 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012788 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12789MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012790 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12791 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012792 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12793MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012794 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12795 msm_routing_put_voice_mixer),
12796};
12797
12798static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012799 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12800 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012801 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12802 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012803 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12804 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012805 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12806 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012807 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12808 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012809 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12810 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012811 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12812 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012813 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12814 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012815 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12816 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012817 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12818 msm_routing_put_voice_mixer),
12819};
12820
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012821static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012822 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12823MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012824 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12825 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012826 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12827MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012828 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12829 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012830 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12831MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012832 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12833 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012834 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12835MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012836 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12837 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012838 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12839MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012840 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12841 msm_routing_put_voice_mixer),
12842};
12843
Karthikeyan Mani57550082018-05-03 18:43:58 -070012844static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12845 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12846 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12847 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12848 msm_routing_put_voice_mixer),
12849 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12850 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12851 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12852 msm_routing_put_voice_mixer),
12853 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12854 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12855 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12856 msm_routing_put_voice_mixer),
12857 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12858 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12859 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12860 msm_routing_put_voice_mixer),
12861 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12862 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12863 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12864 msm_routing_put_voice_mixer),
12865};
12866
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012867static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012868 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12869 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012870 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12871 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012872 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12873 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012874 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12875 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012876 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12877 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012878 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12879 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012880 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12881 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012882 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12883 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012884 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12885 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012886 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12887 msm_routing_put_voice_mixer),
12888};
12889
12890static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012891 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12892 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012893 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12894 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070012895 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
12896 MSM_BACKEND_DAI_MI2S_RX,
12897 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
12898 msm_routing_put_voice_mixer),
12899 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
12900 MSM_BACKEND_DAI_MI2S_RX,
12901 MSM_FRONTEND_DAI_VOICE2_STUB, 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_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_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_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_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 pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012922 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070012923 MSM_BACKEND_DAI_PRI_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),
Josh Kirsch9d769302018-04-10 17:25:42 -070012926 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
12927 MSM_BACKEND_DAI_PRI_MI2S_RX,
12928 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
12929 msm_routing_put_voice_mixer),
12930 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
12931 MSM_BACKEND_DAI_PRI_MI2S_RX,
12932 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
12933 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012934 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070012935 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012936 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12937 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012938 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070012939 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012940 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12941 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012942 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070012943 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012944 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12945 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012946 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070012947 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012948 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12949 msm_routing_put_voice_mixer),
12950};
12951
12952static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012953 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12954MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012955 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12956 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012957 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12958MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012959 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12960 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012961 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12962MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012963 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12964 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012965 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12966MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012967 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12968 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012969 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12970MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012971 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12972 msm_routing_put_voice_mixer),
12973};
12974
12975static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012976 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012978 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12979 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012980 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12981 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012982 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12983 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012984 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12985 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012986 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12987 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012988 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12989 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012990 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12991 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012992 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12993 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012994 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12995 msm_routing_put_voice_mixer),
12996};
12997
12998static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012999 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13000 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013001 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13002 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070013003 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13004 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
13005 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
13006 msm_routing_put_voice_mixer),
13007 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13008 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
13009 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
13010 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013011 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13012 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013013 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13014 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013015 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13016 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013017 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13018 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013019 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13020 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13022 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013023 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13024 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013025 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13026 msm_routing_put_voice_mixer),
13027};
13028
13029static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013030 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13031 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013032 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13033 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070013034 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13035 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
13036 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
13037 msm_routing_put_voice_mixer),
13038 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13039 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
13040 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
13041 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013042 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13043 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013044 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13045 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013046 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13047 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013048 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13049 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013050 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13051 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013052 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13053 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013054 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13055 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013056 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13057 msm_routing_put_voice_mixer),
13058};
13059
13060static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013061 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13062 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013063 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13064 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070013065 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13066 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
13067 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13068 msm_routing_put_voice_stub_mixer),
13069 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13070 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
13071 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13072 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013073 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13074 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013075 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13076 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013077 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13078 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013079 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13080 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013081 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13082 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013083 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13084 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013085 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13086 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013087 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13088 msm_routing_put_voice_mixer),
13089};
13090
13091static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013092 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13093 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013094 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13095 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013096 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13097 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013098 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13099 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013100 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13101 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013102 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13103 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013104 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13105 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013106 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13107 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013108 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13109 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013110 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13111 msm_routing_put_voice_mixer),
13112};
13113
13114static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013115 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13116 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013117 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13118 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013119 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13120 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013121 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13122 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013123 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13124 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013125 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13126 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013127 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13128 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013129 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13130 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013131 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13132 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013133 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13134 msm_routing_put_voice_mixer),
13135};
13136
13137static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013138 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13139MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013140 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13141 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013142 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13143MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013144 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13145 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013146 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13147MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013148 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13149 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013150 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13151MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013152 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13153 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013154 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13155MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013156 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13157 msm_routing_put_voice_mixer),
13158};
13159
13160static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013161 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13162MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013163 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13164 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013165 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13166MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013167 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13168 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013169 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13170MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013171 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13172 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013173 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13174MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013175 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13176 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013177 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13178MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013179 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13180 msm_routing_put_voice_mixer),
13181};
13182
13183static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013184 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13185MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013186 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13187 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013188 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13189MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013190 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13191 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013192 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13193MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013194 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13195 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013196 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13197MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013198 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13199 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013200 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13201MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013202 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13203 msm_routing_put_voice_mixer),
13204};
13205
Rohit Kumara5077932017-09-10 22:05:05 +053013206static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013207 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13208MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013209 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13210 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013211 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13212MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013213 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13214 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013215 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13216MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013217 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13218 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013219 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13220MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013221 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13222 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013223 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13224MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013225 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13226 msm_routing_put_voice_mixer),
13227};
13228
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013229static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013230 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13231 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013232 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13233 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013234 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13235 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013236 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13237 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013238 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13239 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013240 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13241 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013242 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13243 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013244 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13245 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013246 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13247 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013248 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13249 msm_routing_put_voice_mixer),
13250};
13251
13252static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013253 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13254MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013255 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13256 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013257 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13258MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013259 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13260 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013261 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13262MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013263 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13264 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013265 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13266MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013267 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13268 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013269 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13270MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013271 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13272 msm_routing_put_voice_mixer),
13273};
13274
13275static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013276 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13277 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013278 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13279 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013280 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013282 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13283 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013284 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013286 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13287 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013288 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13289 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013290 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13291 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013292 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13293 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013294 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13295 msm_routing_put_voice_mixer),
13296};
13297
13298static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013299 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13300 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013301 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13302 msm_routing_put_voice_mixer),
13303};
13304
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013305static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
13306 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13307 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13308 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13309 msm_routing_put_voice_mixer),
13310 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13311 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13312 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13313 msm_routing_put_voice_mixer),
13314 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13315 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13316 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13317 msm_routing_put_voice_mixer),
13318 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13319 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13320 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13321 msm_routing_put_voice_mixer),
13322 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13323 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13324 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13325 msm_routing_put_voice_mixer),
13326};
13327
13328static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
13329 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13330 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13331 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13332 msm_routing_put_voice_mixer),
13333 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13334 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13335 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13336 msm_routing_put_voice_mixer),
13337 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13338 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13339 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13340 msm_routing_put_voice_mixer),
13341 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13342 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13343 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13344 msm_routing_put_voice_mixer),
13345 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13346 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13347 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13348 msm_routing_put_voice_mixer),
13349};
13350
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013351static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
13352 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13353 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13354 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13355 msm_routing_put_voice_mixer),
13356 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13357 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13358 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13359 msm_routing_put_voice_mixer),
13360 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13361 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13362 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13363 msm_routing_put_voice_mixer),
13364 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13365 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13366 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13367 msm_routing_put_voice_mixer),
13368 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13369 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13370 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13371 msm_routing_put_voice_mixer),
13372};
13373
13374static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
13375 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13376 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13377 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13378 msm_routing_put_voice_mixer),
13379 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13380 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13381 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13382 msm_routing_put_voice_mixer),
13383 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13384 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13385 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13386 msm_routing_put_voice_mixer),
13387 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13388 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13389 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13390 msm_routing_put_voice_mixer),
13391 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13392 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13393 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13394 msm_routing_put_voice_mixer),
13395};
13396
13397static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
13398 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13400 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13401 msm_routing_put_voice_mixer),
13402 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13403 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13404 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13405 msm_routing_put_voice_mixer),
13406 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13407 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13408 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13409 msm_routing_put_voice_mixer),
13410 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13411 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13412 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13413 msm_routing_put_voice_mixer),
13414 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13415 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13416 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13417 msm_routing_put_voice_mixer),
13418};
13419
13420static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
13421 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13422 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13423 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13424 msm_routing_put_voice_mixer),
13425 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13426 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13427 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13428 msm_routing_put_voice_mixer),
13429 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13430 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13431 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13432 msm_routing_put_voice_mixer),
13433 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13434 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13435 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13436 msm_routing_put_voice_mixer),
13437 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13438 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13439 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13440 msm_routing_put_voice_mixer),
13441};
13442
13443static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
13444 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13445 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13446 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13447 msm_routing_put_voice_mixer),
13448 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13449 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13450 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13451 msm_routing_put_voice_mixer),
13452 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13453 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13454 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13455 msm_routing_put_voice_mixer),
13456 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13457 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13458 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13459 msm_routing_put_voice_mixer),
13460 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13461 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13462 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13463 msm_routing_put_voice_mixer),
13464};
13465
13466static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
13467 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13468 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13469 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13470 msm_routing_put_voice_mixer),
13471 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13472 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13473 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13474 msm_routing_put_voice_mixer),
13475 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13476 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13477 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13478 msm_routing_put_voice_mixer),
13479 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13480 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13481 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13482 msm_routing_put_voice_mixer),
13483 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13484 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13485 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13486 msm_routing_put_voice_mixer),
13487};
13488
13489static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
13490 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13491 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13492 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13493 msm_routing_put_voice_mixer),
13494 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13495 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13496 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13497 msm_routing_put_voice_mixer),
13498 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13499 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13500 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13501 msm_routing_put_voice_mixer),
13502 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13503 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13504 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13505 msm_routing_put_voice_mixer),
13506 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13507 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13508 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13509 msm_routing_put_voice_mixer),
13510};
13511
13512static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
13513 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13514 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13515 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13516 msm_routing_put_voice_mixer),
13517 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13518 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13519 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13520 msm_routing_put_voice_mixer),
13521 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13522 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13523 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13524 msm_routing_put_voice_mixer),
13525 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13526 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13527 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13528 msm_routing_put_voice_mixer),
13529 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13531 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13532 msm_routing_put_voice_mixer),
13533};
13534
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053013535static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
13536 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13537 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13538 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13539 msm_routing_put_voice_mixer),
13540 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13541 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13542 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13543 msm_routing_put_voice_stub_mixer),
13544 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13545 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13546 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13547 msm_routing_put_voice_stub_mixer),
13548 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
13549 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13550 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
13551 msm_routing_put_voice_mixer),
13552 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13553 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13554 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13555 msm_routing_put_voice_mixer),
13556 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13557 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13558 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13559 msm_routing_put_voice_mixer),
13560 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13561 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13562 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13563 msm_routing_put_voice_mixer),
13564 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13565 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13566 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13567 msm_routing_put_voice_mixer),
13568};
13569
13570static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
13571 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13572 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13573 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13574 msm_routing_put_voice_mixer),
13575 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13576 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13577 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13578 msm_routing_put_voice_stub_mixer),
13579 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13580 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13581 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13582 msm_routing_put_voice_stub_mixer),
13583 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
13584 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13585 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
13586 msm_routing_put_voice_mixer),
13587 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13588 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13589 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13590 msm_routing_put_voice_mixer),
13591 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13592 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13593 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13594 msm_routing_put_voice_mixer),
13595 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13596 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13597 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13598 msm_routing_put_voice_mixer),
13599 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13600 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13601 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13602 msm_routing_put_voice_mixer),
13603};
13604
13605static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
13606 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13607 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13608 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13609 msm_routing_put_voice_mixer),
13610 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13611 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13612 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13613 msm_routing_put_voice_stub_mixer),
13614 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13615 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13616 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13617 msm_routing_put_voice_stub_mixer),
13618 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
13619 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13620 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
13621 msm_routing_put_voice_mixer),
13622 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13623 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13624 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13625 msm_routing_put_voice_mixer),
13626 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13627 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13628 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13629 msm_routing_put_voice_mixer),
13630 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13631 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13632 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13633 msm_routing_put_voice_mixer),
13634 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13635 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13636 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13637 msm_routing_put_voice_mixer),
13638};
13639
13640static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
13641 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13642 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13643 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13644 msm_routing_put_voice_mixer),
13645 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13647 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13648 msm_routing_put_voice_stub_mixer),
13649 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13650 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13651 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13652 msm_routing_put_voice_stub_mixer),
13653 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
13654 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13655 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
13656 msm_routing_put_voice_mixer),
13657 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13658 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13659 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13660 msm_routing_put_voice_mixer),
13661 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13662 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13663 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13664 msm_routing_put_voice_mixer),
13665 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13666 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13667 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13668 msm_routing_put_voice_mixer),
13669 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13670 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13671 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13672 msm_routing_put_voice_mixer),
13673};
13674
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013675static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013676 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13677 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013678 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13679 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013680 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13681 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013682 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13683 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013684};
13685
13686static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013687 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13688 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013689 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13690 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013691 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13692 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013693 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13694 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013695};
13696
13697static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013698 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13699 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013700 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13701 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013702 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13703 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013704 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13705 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013706};
13707
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013708static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013709 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
13710 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013711 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13712 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013713 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
13714 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013715 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13716 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013717 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013718 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13719 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013720 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013721 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13722 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013723 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013724 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13725 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013726 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013727 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13728 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013729 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013730 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13731 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013732 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013733 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13734 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013735 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013736 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13737 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013738 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013739 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13740 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013741 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013742 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13743 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013744 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013745 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13746 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013747 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013748 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13749 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013750 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013751 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13752 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013753 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013754 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13755 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013756 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
13757 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013758 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13759 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013760 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
13761MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013762 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013763 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13764 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13765 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13766 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13767 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13768 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013769 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13770 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13771 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013772 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13773 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13774 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13775 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13776 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13777 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13778 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13779 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13780 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13781 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
13782 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13783 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13784 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13785 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13786 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13787 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13788 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13789 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053013790 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
13791 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13792 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13793 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
13794 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13795 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053013796 SOC_DOUBLE_EXT("PRI_TDM_TX3_MMode1", SND_SOC_NOPM,
13797 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13798 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013799};
13800
13801static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013802 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13803 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013804 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13805 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013806 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13807 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013808 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13809 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013810 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013811 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13812 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013813 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013814 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13815 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013816 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013817 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13818 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013819 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013820 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13821 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013822 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013823 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13824 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013825 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013826 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13827 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013828 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013829 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13830 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013831 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013832 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13833 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013834 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013835 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13836 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013837 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013838 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13839 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013840 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013841 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13842 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013843 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013844 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13845 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013846 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013847 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13848 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013849 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013850 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13851 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013852 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13853 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13854 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13855 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13856 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13857 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013858 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13859 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13860 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013861 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13862 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13863 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13864 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13865 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13866 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13867 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13868 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13869 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13870 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13871 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13872 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13873 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13874 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13875 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13876 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13877 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13878 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053013879 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
13880 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13881 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13882 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
13883 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13884 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053013885 SOC_DOUBLE_EXT("PRI_TDM_TX3_MMode2", SND_SOC_NOPM,
13886 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13887 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013888};
13889
13890static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013891 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13892 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013893 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13894 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013895 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13896 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013897 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13898 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013899 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13900 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013901 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13902 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013903 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13904 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013905 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13906 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013907 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13908 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013909 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13910 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013911 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13912 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013913 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13914 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013915 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13916 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013917 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13918 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013919 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13920 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013921 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13922 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013923 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13924 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013925 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13926 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013927 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13928 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013929 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13930 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013931 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13932 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013933 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13934 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013935 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13936 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013937 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13938 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013939 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13940 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013941 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13942 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013943 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13944 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013945 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13946 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013947 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13948 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013949 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13950 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013951 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13952 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013953 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13954 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013955 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13956 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13957 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13958 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13959 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13960 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013961 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13962 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13963 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013964 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13965 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13966 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13967 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13968 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13969 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13970 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13971 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13972 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13973 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13974 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13975 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13976 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13977 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13978 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13979 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13980 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13981 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053013982 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
13983 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13984 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013985};
13986
13987static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013988 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13989 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013990 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13991 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013992 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13993 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013994 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13995 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013996 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13997 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013998 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13999 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014000 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
14001 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014002 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14003 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014004 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14005 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014006 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14007 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014008 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14009 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014010 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14011 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014012 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14013 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014014 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14015 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014016 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14017 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014018 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14019 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014020 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14021 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014022 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14023 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014024 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14025 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014026 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14027 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014028 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14029 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014030 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14031 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014032 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014034 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14035 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014036 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014038 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14039 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014040 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014042 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14043 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014044 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14045 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014046 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14047 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014048 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
14049 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014050 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14051 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014052 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14053 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014054 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14055 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014056 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14057 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014058 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14059 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014060 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14061 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014062 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14063 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014064 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14065 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
14066 1, 0, msm_routing_get_voice_stub_mixer,
14067 msm_routing_put_voice_stub_mixer),
14068 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14069 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
14070 1, 0, msm_routing_get_voice_stub_mixer,
14071 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014072 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14073 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
14074 1, 0, msm_routing_get_voice_stub_mixer,
14075 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014076 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14077 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
14078 1, 0, msm_routing_get_voice_stub_mixer,
14079 msm_routing_put_voice_stub_mixer),
14080 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14081 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
14082 1, 0, msm_routing_get_voice_stub_mixer,
14083 msm_routing_put_voice_stub_mixer),
14084 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14085 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
14086 1, 0, msm_routing_get_voice_stub_mixer,
14087 msm_routing_put_voice_stub_mixer),
14088 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14089 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
14090 1, 0, msm_routing_get_voice_stub_mixer,
14091 msm_routing_put_voice_stub_mixer),
14092 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14093 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
14094 1, 0, msm_routing_get_voice_stub_mixer,
14095 msm_routing_put_voice_stub_mixer),
14096 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14097 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
14098 1, 0, msm_routing_get_voice_stub_mixer,
14099 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014100};
14101
14102static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014103 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
14104 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014105 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14106 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014107 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14108 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014109 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14110 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014111 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
14112 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014113 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14114 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014115 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14116 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014117 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14118 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014119 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14120 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014121 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14122 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014123 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14124 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014125 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14126 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014127 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14128 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014129 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14130 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014131 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14132 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014133 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14134 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014135 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14136 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014137 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14138 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014139 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
14140 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014141 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14142 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014143 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14144 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014145 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14146 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014147 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14148 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014149 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14150 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014151 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14152 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014153 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14154 msm_routing_put_voice_stub_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070014155 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14156 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14157 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14158 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014159 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14160 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014161 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14162 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014163 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14164 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014165 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14166 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014167 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14168 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
14169 1, 0, msm_routing_get_voice_stub_mixer,
14170 msm_routing_put_voice_stub_mixer),
14171 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14172 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
14173 1, 0, msm_routing_get_voice_stub_mixer,
14174 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014175 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14176 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
14177 1, 0, msm_routing_get_voice_stub_mixer,
14178 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014179 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14180 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
14181 1, 0, msm_routing_get_voice_stub_mixer,
14182 msm_routing_put_voice_stub_mixer),
14183 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14184 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
14185 1, 0, msm_routing_get_voice_stub_mixer,
14186 msm_routing_put_voice_stub_mixer),
14187 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14188 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
14189 1, 0, msm_routing_get_voice_stub_mixer,
14190 msm_routing_put_voice_stub_mixer),
14191 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14192 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
14193 1, 0, msm_routing_get_voice_stub_mixer,
14194 msm_routing_put_voice_stub_mixer),
14195 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14196 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
14197 1, 0, msm_routing_get_voice_stub_mixer,
14198 msm_routing_put_voice_stub_mixer),
14199 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14200 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
14201 1, 0, msm_routing_get_voice_stub_mixer,
14202 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014203};
14204
14205static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014206 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
14207 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014208 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14209 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014210 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14211 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014212 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14213 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014214 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
14215 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014216 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14217 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014218 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14219 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014220 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14221 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014222 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14223 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014224 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14225 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014226 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14227 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014228 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14229 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014230 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14231 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014232 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14233 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014234 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14235 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014236 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14237 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014238 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14239 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014240 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14241 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014242 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
14243 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014244 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14245 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014246 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14247 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014248 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14249 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014250 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14251 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014252 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14253 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014254 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14255 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014256 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14257 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014258 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14259 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014260 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14261 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014262 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14263 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014264 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14265 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014266 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14267 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
14268 1, 0, msm_routing_get_voice_stub_mixer,
14269 msm_routing_put_voice_stub_mixer),
14270 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14271 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
14272 1, 0, msm_routing_get_voice_stub_mixer,
14273 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014274 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14275 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
14276 1, 0, msm_routing_get_voice_stub_mixer,
14277 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014278 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14279 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
14280 1, 0, msm_routing_get_voice_stub_mixer,
14281 msm_routing_put_voice_stub_mixer),
14282 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14283 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
14284 1, 0, msm_routing_get_voice_stub_mixer,
14285 msm_routing_put_voice_stub_mixer),
14286 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14287 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
14288 1, 0, msm_routing_get_voice_stub_mixer,
14289 msm_routing_put_voice_stub_mixer),
14290 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14291 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
14292 1, 0, msm_routing_get_voice_stub_mixer,
14293 msm_routing_put_voice_stub_mixer),
14294 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14295 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
14296 1, 0, msm_routing_get_voice_stub_mixer,
14297 msm_routing_put_voice_stub_mixer),
14298 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14299 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
14300 1, 0, msm_routing_get_voice_stub_mixer,
14301 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014302};
14303
14304static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014305 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
14306 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014307 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14308 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014309 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
14310 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014311 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14312 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014313 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
14314 MSM_BACKEND_DAI_INT_BT_SCO_TX,
14315 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014316 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014317 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
14318 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014319 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14320 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014321 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14322 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014323 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14324 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014325 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14326 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014327 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14328 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014329 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14330 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014331 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14332 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014333 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14334 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014335 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14336 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014337 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14338 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014339 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14340 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014341 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
14342 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014343 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14344 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014345 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
14346 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014347 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14348 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014349 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
14350 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014351 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14352 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014353 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
14354 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014355 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14356 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014357 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
14358 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014359 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14360 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014361 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
14362 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014363 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14364 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014365 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
14366 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014367 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14368 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014369 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
14370 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
14371 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14372 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
14373 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
14374 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014375 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
14376 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
14377 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014378 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
14379 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
14380 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14381 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
14382 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
14383 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14384 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
14385 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
14386 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14387 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
14388 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
14389 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14390 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
14391 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
14392 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14393 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
14394 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
14395 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014396};
14397
14398static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014399 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14400 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014401 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
14404 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014405 MSM_BACKEND_DAI_SECONDARY_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
14408 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014409 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014411 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14412 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014413 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014415 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14416 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014417 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014419 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14420 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014421 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14422 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014423 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14424 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014425 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014427 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14428 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014429 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014431 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14432 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014433 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014435 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14436 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014437 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14438 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014439 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14440 MSM_BACKEND_DAI_INT0_MI2S_RX,
14441 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14442 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014443};
14444
14445static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014446 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14447 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014448 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014450 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14451 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014452 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014454 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14455 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014456 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014458 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14459 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014460 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014462 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14463 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014464 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014466 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14467 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014468 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014470 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14471 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014472 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14473 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014474 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14475 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014476 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14477 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014478 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14479 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014480 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014482 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14483 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014484 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14485 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014486 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14487 MSM_BACKEND_DAI_INT4_MI2S_RX,
14488 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14489 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014490};
14491
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014492static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
14493 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14494 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14495 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
14496 msm_routing_put_port_mixer),
14497 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14498 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14499 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
14500 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080014501 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14502 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14503 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14504 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080014505 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14506 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14507 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14508 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014509};
14510
14511static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
14512 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14513 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14514 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
14515 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080014516 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14517 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14518 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14519 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014520 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080014521 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053014522 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14523 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080014524 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14525 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14526 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14527 msm_routing_put_port_mixer),
14528
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014529};
14530
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014531static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014532 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14533 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014534 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14535 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014536 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14537 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014538 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014540 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14541 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014542 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014544 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14545 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014546 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014548 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14549 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014550 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014552 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14553 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014554 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014556 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14557 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014558 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014560 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14561 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014562 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014564 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14565 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014566 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014568 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14569 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014570 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014572 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14573 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014574 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014576 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14577 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014578 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014580 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14581 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014582 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014584 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14585 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014586 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014588 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14589 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014590 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14591 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014592 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14593 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014594 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14595 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014596 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14597 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014598 MSM_BACKEND_DAI_INT_BT_SCO_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("PRI_MI2S_RX", SND_SOC_NOPM,
14601 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014602 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014604 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
14605 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014606 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014608 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
14609 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014610 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014612 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
14613 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014614 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014616 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
14617 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053014618 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14619 msm_routing_put_port_mixer),
14620 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14621 MSM_BACKEND_DAI_SLIMBUS_0_RX,
14622 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053014623 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014624};
14625
14626static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014627 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14628 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014629 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014631 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14632 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014633 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14634 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014635 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14636 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014637 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14638 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014639 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14640 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014641 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014643 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14644 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014645 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
14646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014647 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14648 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014649 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14650 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014651};
14652
14653static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014654 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14655 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014656 MSM_BACKEND_DAI_SEC_AUXPCM_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("SLIM_0_TX", SND_SOC_NOPM,
14659 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014660 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
14663 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014664 MSM_BACKEND_DAI_AUXPCM_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("PRI_MI2S_TX", SND_SOC_NOPM,
14667 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014668 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14669 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014670};
14671
14672static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014673 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14674 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014675 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014677 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14678 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014679 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014681 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14682 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014683 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14684 msm_routing_put_port_mixer),
14685};
14686
14687static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014688 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14689 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014690 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014692 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14693 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014694 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014696 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14697 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014698 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14699 msm_routing_put_port_mixer),
14700};
14701
Rohit Kumara5077932017-09-10 22:05:05 +053014702static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014703 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14704 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014705 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014707 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14708 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014709 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014711 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14712 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014713 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14714 msm_routing_put_port_mixer),
14715};
14716
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014717static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014718 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14719 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014720 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014722 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14723 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014724 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
14725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014726 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14727 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014728 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014730 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14731 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014732 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014734 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14735 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014736 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014738 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14739 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014740 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14741 msm_routing_put_port_mixer),
14742};
14743
14744static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014745 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
14746 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014747 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
14748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014749 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14750 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014751 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014753 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
14754 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014755 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
14756 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014757 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
14758 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014759 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
14760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014761 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014763 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
14764 msm_routing_put_port_mixer),
14765};
14766
14767static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014768 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14769 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014770 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014772 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14773 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014774 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014776 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14777 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014778 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014780 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14781 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014782 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014784 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14785 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014786 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014788 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14789 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014790 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014792 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14793 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014794 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014796 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14797 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014798 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014800 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14801 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014802 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014804 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14805 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014806 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014808 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14809 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014810 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014812 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14813 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014814 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14815 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014816 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14817 MSM_BACKEND_DAI_SLIMBUS_6_RX,
14818 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14819 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014820};
14821
14822static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014823 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14824 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014825 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014827 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14828 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014829 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14830 msm_routing_put_port_mixer),
14831};
14832
14833static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014834 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14835 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014836 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014838 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14839 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014840 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14841 msm_routing_put_port_mixer),
14842};
14843
14844
14845static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014846 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14847 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014848 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14849 msm_routing_put_port_mixer),
14850};
14851
14852static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014853 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14854 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014855 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14856 msm_routing_put_port_mixer),
14857};
14858
Karthikeyan Mani57550082018-05-03 18:43:58 -070014859static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14860 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14861 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14862 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14863 msm_routing_put_port_mixer),
14864};
14865
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014866static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014867 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14868 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014869 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14870 msm_routing_put_port_mixer),
14871};
14872
14873static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014874 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14875 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014876 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014878 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14879 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014880 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14881 msm_routing_put_port_mixer),
14882};
14883
14884static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014885 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14886 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014887 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014889 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14890 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014891 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014893 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14894 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014895 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014897 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14898 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014899 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014901 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14902 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014903 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014905 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14906 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014907 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014909 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14910 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014911 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014913 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14914 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014915 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014917 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14918 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014919 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014921 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14922 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014923 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14924 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014925};
14926
14927static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014928 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14929 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014930 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14931 msm_routing_put_port_mixer),
14932};
14933
14934static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014935 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14936 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014937 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014939 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14940 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014941 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014943 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14944 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014945 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014947 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14948 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014949 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014951 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14952 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014953 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014955 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14956 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014957 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014959 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14960 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014961 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014963 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14964 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014965 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014967 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14968 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014969 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14970 msm_routing_put_port_mixer),
14971};
14972
Rohit Kumara5077932017-09-10 22:05:05 +053014973static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014974 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14975 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014976 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014978 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14979 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014980 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014982 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14983 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014984 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014986 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14987 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014988 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014990 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14991 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014992 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14993 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014994 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14995 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014996 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014998 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14999 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015000 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15001 msm_routing_put_port_mixer),
15002};
15003
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015004static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015005 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15006 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015007 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15008 msm_routing_get_port_mixer,
15009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015010 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15011 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015012 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15013 msm_routing_get_port_mixer,
15014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015015 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15016 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015017 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15018 msm_routing_get_port_mixer,
15019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015020 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15021 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015022 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15023 msm_routing_get_port_mixer,
15024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015025 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15026 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015027 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
15031 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015032 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015037 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15041 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015042 MSM_BACKEND_DAI_SEC_AUXPCM_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("PRI_TDM_TX_0", SND_SOC_NOPM,
15046 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015047 MSM_BACKEND_DAI_PRI_TDM_TX_0, 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("PRI_TDM_TX_1", SND_SOC_NOPM,
15051 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015052 MSM_BACKEND_DAI_PRI_TDM_TX_1, 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("PRI_TDM_TX_2", SND_SOC_NOPM,
15056 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015057 MSM_BACKEND_DAI_PRI_TDM_TX_2, 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("PRI_TDM_TX_3", SND_SOC_NOPM,
15061 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015062 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
15066 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015067 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
15071 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015072 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015077 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
15081 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015082 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
15086 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015087 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15091 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015092 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15096 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015097 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15101 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015102 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15103 msm_routing_get_port_mixer,
15104 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015105};
15106
15107static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015108 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15109 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015110 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15111 msm_routing_get_port_mixer,
15112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015113 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15114 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015115 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15116 msm_routing_get_port_mixer,
15117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015118 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15119 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015120 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15121 msm_routing_get_port_mixer,
15122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015123 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15124 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015125 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15126 msm_routing_get_port_mixer,
15127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015128 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15129 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015130 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
15134 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015135 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15139 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015140 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15144 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015145 MSM_BACKEND_DAI_SEC_AUXPCM_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("PRI_TDM_TX_0", SND_SOC_NOPM,
15149 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015150 MSM_BACKEND_DAI_PRI_TDM_TX_0, 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("PRI_TDM_TX_1", SND_SOC_NOPM,
15154 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015155 MSM_BACKEND_DAI_PRI_TDM_TX_1, 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("PRI_TDM_TX_2", SND_SOC_NOPM,
15159 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015160 MSM_BACKEND_DAI_PRI_TDM_TX_2, 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("PRI_TDM_TX_3", SND_SOC_NOPM,
15164 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015165 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
15169 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015170 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
15174 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015175 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
15179 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015180 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
15184 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015185 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
15189 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015190 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15194 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015195 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15199 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015200 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15204 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015205 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15206 msm_routing_get_port_mixer,
15207 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015208};
15209
15210static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015211 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15212 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015213 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15214 msm_routing_get_port_mixer,
15215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015216 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15217 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015218 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15219 msm_routing_get_port_mixer,
15220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015221 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15222 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015223 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15224 msm_routing_get_port_mixer,
15225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015226 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15227 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015228 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15229 msm_routing_get_port_mixer,
15230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015231 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15232 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015233 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
15237 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015238 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15242 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015243 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15247 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015248 MSM_BACKEND_DAI_SEC_AUXPCM_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("PRI_TDM_TX_0", SND_SOC_NOPM,
15252 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015253 MSM_BACKEND_DAI_PRI_TDM_TX_0, 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("PRI_TDM_TX_1", SND_SOC_NOPM,
15257 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015258 MSM_BACKEND_DAI_PRI_TDM_TX_1, 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("PRI_TDM_TX_2", SND_SOC_NOPM,
15262 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015263 MSM_BACKEND_DAI_PRI_TDM_TX_2, 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("PRI_TDM_TX_3", SND_SOC_NOPM,
15267 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015268 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
15272 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015273 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
15277 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015278 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
15282 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015283 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
15287 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015288 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
15292 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015293 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15297 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015298 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15302 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015303 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15307 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015308 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15309 msm_routing_get_port_mixer,
15310 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015311};
15312
15313static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015314 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15315 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015316 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15317 msm_routing_get_port_mixer,
15318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015319 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15320 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015321 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15322 msm_routing_get_port_mixer,
15323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015324 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15325 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015326 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15327 msm_routing_get_port_mixer,
15328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015329 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15330 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015331 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15332 msm_routing_get_port_mixer,
15333 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015334 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15335 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015336 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
15340 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015341 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15345 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015346 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15350 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015351 MSM_BACKEND_DAI_SEC_AUXPCM_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("PRI_TDM_TX_0", SND_SOC_NOPM,
15355 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015356 MSM_BACKEND_DAI_PRI_TDM_TX_0, 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("PRI_TDM_TX_1", SND_SOC_NOPM,
15360 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015361 MSM_BACKEND_DAI_PRI_TDM_TX_1, 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("PRI_TDM_TX_2", SND_SOC_NOPM,
15365 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015366 MSM_BACKEND_DAI_PRI_TDM_TX_2, 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("PRI_TDM_TX_3", SND_SOC_NOPM,
15370 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015371 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
15375 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015376 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
15380 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015381 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
15385 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015386 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
15390 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015391 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
15395 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015396 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15400 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015401 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15405 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015406 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15410 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015411 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15412 msm_routing_get_port_mixer,
15413 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015414};
15415
15416static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015417 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15418 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015419 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15420 msm_routing_get_port_mixer,
15421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015422 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15423 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015424 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15425 msm_routing_get_port_mixer,
15426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015427 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15428 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015429 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15430 msm_routing_get_port_mixer,
15431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015432 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15433 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015434 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15435 msm_routing_get_port_mixer,
15436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015437 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15438 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015439 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
15443 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015444 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15448 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015449 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15453 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015454 MSM_BACKEND_DAI_SEC_AUXPCM_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("SEC_TDM_TX_0", SND_SOC_NOPM,
15458 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015459 MSM_BACKEND_DAI_SEC_TDM_TX_0, 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("SEC_TDM_TX_1", SND_SOC_NOPM,
15463 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015464 MSM_BACKEND_DAI_SEC_TDM_TX_1, 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("SEC_TDM_TX_2", SND_SOC_NOPM,
15468 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015469 MSM_BACKEND_DAI_SEC_TDM_TX_2, 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_TDM_TX_3", SND_SOC_NOPM,
15473 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015474 MSM_BACKEND_DAI_SEC_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
15478 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015479 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
15483 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015484 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
15488 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015489 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
15493 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015494 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
15498 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015499 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15503 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015504 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15508 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015509 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15513 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015514 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15515 msm_routing_get_port_mixer,
15516 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015517};
15518
15519static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015520 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15521 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015522 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15523 msm_routing_get_port_mixer,
15524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015525 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15526 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015527 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15528 msm_routing_get_port_mixer,
15529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015530 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15531 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015532 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15533 msm_routing_get_port_mixer,
15534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015535 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15536 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015537 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15538 msm_routing_get_port_mixer,
15539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015540 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15541 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015542 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15543 msm_routing_get_port_mixer,
15544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015545 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15546 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015547 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15548 msm_routing_get_port_mixer,
15549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015550 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15551 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015552 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15553 msm_routing_get_port_mixer,
15554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015555 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15556 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015557 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15558 msm_routing_get_port_mixer,
15559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015560 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15561 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015562 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15563 msm_routing_get_port_mixer,
15564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015565 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15566 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015567 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15568 msm_routing_get_port_mixer,
15569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015570 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15571 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015572 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15573 msm_routing_get_port_mixer,
15574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015575 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15576 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015577 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15578 msm_routing_get_port_mixer,
15579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015580 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15581 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015582 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15583 msm_routing_get_port_mixer,
15584 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015585 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15586 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015587 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15588 msm_routing_get_port_mixer,
15589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015590 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15591 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015592 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15593 msm_routing_get_port_mixer,
15594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015595 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15596 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015597 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15598 msm_routing_get_port_mixer,
15599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015600 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15601 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015602 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15603 msm_routing_get_port_mixer,
15604 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015605 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15606 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015607 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15608 msm_routing_get_port_mixer,
15609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015610 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15611 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015612 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15613 msm_routing_get_port_mixer,
15614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015615 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15616 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015617 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15618 msm_routing_get_port_mixer,
15619 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015620};
15621
15622static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015623 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15624 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015625 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
15629 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015630 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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("QUAT_MI2S_TX", SND_SOC_NOPM,
15634 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015635 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
15639 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015640 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15644 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015645 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15646 msm_routing_get_port_mixer,
15647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015648 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15649 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015650 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15651 msm_routing_get_port_mixer,
15652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015653 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15654 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015655 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15656 msm_routing_get_port_mixer,
15657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015658 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15659 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015660 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15661 msm_routing_get_port_mixer,
15662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015663 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15664 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015665 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15666 msm_routing_get_port_mixer,
15667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015668 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15669 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015670 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15671 msm_routing_get_port_mixer,
15672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015673 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15674 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015675 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15676 msm_routing_get_port_mixer,
15677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015678 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15679 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015680 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15681 msm_routing_get_port_mixer,
15682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015683 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15684 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015685 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15686 msm_routing_get_port_mixer,
15687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015688 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15689 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015690 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15691 msm_routing_get_port_mixer,
15692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015693 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15694 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015695 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15696 msm_routing_get_port_mixer,
15697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015698 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15699 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015700 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15701 msm_routing_get_port_mixer,
15702 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015703 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15704 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015705 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15706 msm_routing_get_port_mixer,
15707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015708 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15709 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015710 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15711 msm_routing_get_port_mixer,
15712 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015713 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15714 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015715 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15716 msm_routing_get_port_mixer,
15717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015718 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15719 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015720 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15721 msm_routing_get_port_mixer,
15722 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015723};
15724
15725static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015726 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15727 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015728 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
15732 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015733 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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("QUAT_MI2S_TX", SND_SOC_NOPM,
15737 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015738 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
15742 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015743 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15747 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015748 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15749 msm_routing_get_port_mixer,
15750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015751 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15752 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015753 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15754 msm_routing_get_port_mixer,
15755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015756 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15757 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015758 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15759 msm_routing_get_port_mixer,
15760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015761 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15762 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015763 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15764 msm_routing_get_port_mixer,
15765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015766 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15767 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015768 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15769 msm_routing_get_port_mixer,
15770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015771 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15772 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015773 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15774 msm_routing_get_port_mixer,
15775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015776 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15777 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015778 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15779 msm_routing_get_port_mixer,
15780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015781 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15782 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015783 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15784 msm_routing_get_port_mixer,
15785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015786 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15787 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015788 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15789 msm_routing_get_port_mixer,
15790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015791 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15792 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015793 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15794 msm_routing_get_port_mixer,
15795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015796 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15797 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015798 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15799 msm_routing_get_port_mixer,
15800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015801 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15802 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015803 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15804 msm_routing_get_port_mixer,
15805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015806 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15807 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015808 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15809 msm_routing_get_port_mixer,
15810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015811 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15812 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015813 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15814 msm_routing_get_port_mixer,
15815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015816 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15817 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015818 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15819 msm_routing_get_port_mixer,
15820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015821 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15822 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015823 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15824 msm_routing_get_port_mixer,
15825 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015826};
15827
Derek Chenfdcc0982018-10-02 15:14:03 -070015828static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15829 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15830 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15831 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15832 msm_routing_get_port_mixer,
15833 msm_routing_put_port_mixer),
15834};
15835
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015836static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015837 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15838 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015839 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15840 msm_routing_get_port_mixer,
15841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015842 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15843 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015844 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15845 msm_routing_get_port_mixer,
15846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015847 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15848 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015849 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15850 msm_routing_get_port_mixer,
15851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015852 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15853 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015854 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15855 msm_routing_get_port_mixer,
15856 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015857 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15858 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015859 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
15863 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015864 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015869 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15873 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015874 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_TDM_TX_0", SND_SOC_NOPM,
15878 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015879 MSM_BACKEND_DAI_TERT_TDM_TX_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
15883 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015884 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
15888 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015889 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
15893 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015894 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
15898 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015899 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
15903 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015904 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
15908 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015909 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
15913 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015914 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
15918 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015919 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15923 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015924 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15928 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015929 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15933 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015934 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15935 msm_routing_get_port_mixer,
15936 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015937};
15938
15939static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015940 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15941 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015942 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15943 msm_routing_get_port_mixer,
15944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015945 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15946 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015947 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15948 msm_routing_get_port_mixer,
15949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015950 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15951 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015952 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15953 msm_routing_get_port_mixer,
15954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015955 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15956 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015957 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15958 msm_routing_get_port_mixer,
15959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015960 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15961 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015962 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
15966 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015967 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15971 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015972 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15976 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015977 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_TDM_TX_0", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015982 MSM_BACKEND_DAI_TERT_TDM_TX_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
15986 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015987 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
15991 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015992 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
15996 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015997 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
16001 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016002 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
16006 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016007 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
16011 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016012 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
16016 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016017 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
16021 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016022 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16026 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016027 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16031 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016032 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16036 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016037 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16038 msm_routing_get_port_mixer,
16039 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016040};
16041
16042static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016043 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16044 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016045 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16046 msm_routing_get_port_mixer,
16047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016048 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16049 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016050 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16051 msm_routing_get_port_mixer,
16052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016053 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16054 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016055 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
16056 msm_routing_get_port_mixer,
16057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016058 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16059 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016060 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16061 msm_routing_get_port_mixer,
16062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016063 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16064 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016065 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
16069 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016070 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
16074 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016075 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16079 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016080 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_TDM_TX_0", SND_SOC_NOPM,
16084 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016085 MSM_BACKEND_DAI_TERT_TDM_TX_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
16089 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016090 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
16094 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016095 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
16099 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016100 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
16104 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016105 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
16109 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016110 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
16114 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016115 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
16119 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016120 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
16124 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016125 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16129 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016130 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16134 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016135 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16139 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016140 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16141 msm_routing_get_port_mixer,
16142 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016143};
16144
16145static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016146 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16147 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016148 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16149 msm_routing_get_port_mixer,
16150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016151 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16152 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016153 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16154 msm_routing_get_port_mixer,
16155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016156 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16157 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016158 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
16159 msm_routing_get_port_mixer,
16160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016161 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16162 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016163 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16164 msm_routing_get_port_mixer,
16165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016166 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16167 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016168 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
16172 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016173 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
16177 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016178 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016183 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_TDM_TX_0", SND_SOC_NOPM,
16187 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016188 MSM_BACKEND_DAI_TERT_TDM_TX_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016193 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016198 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
16202 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016203 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
16207 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016208 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
16212 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016213 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
16217 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016218 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
16222 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016223 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
16227 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016228 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16232 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016233 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16237 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016238 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16242 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016243 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16244 msm_routing_get_port_mixer,
16245 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016246};
16247
16248static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016249 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16250 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016251 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16252 msm_routing_get_port_mixer,
16253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016254 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16255 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016256 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16257 msm_routing_get_port_mixer,
16258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016259 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16260 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016261 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16262 msm_routing_get_port_mixer,
16263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016264 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16265 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016266 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16267 msm_routing_get_port_mixer,
16268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016269 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16270 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016271 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
16275 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016276 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
16280 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016281 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16285 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016286 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_TDM_TX_0", SND_SOC_NOPM,
16290 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016291 MSM_BACKEND_DAI_TERT_TDM_TX_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
16295 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016296 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
16300 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016301 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
16305 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016306 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
16310 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016311 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
16315 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016316 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
16320 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016321 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
16325 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016326 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
16330 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016331 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16335 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016336 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16340 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016341 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16345 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016346 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16347 msm_routing_get_port_mixer,
16348 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016349};
16350
16351static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016352 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16353 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016354 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16355 msm_routing_get_port_mixer,
16356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016357 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16358 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016359 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16360 msm_routing_get_port_mixer,
16361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016362 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16363 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016364 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16365 msm_routing_get_port_mixer,
16366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016367 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16368 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016369 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16370 msm_routing_get_port_mixer,
16371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016372 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16373 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016374 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
16378 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016379 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
16383 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016384 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16388 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016389 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_TDM_TX_0", SND_SOC_NOPM,
16393 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016394 MSM_BACKEND_DAI_TERT_TDM_TX_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
16398 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016399 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
16403 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016404 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
16408 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016409 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
16413 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016414 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
16418 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016419 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
16423 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016424 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
16428 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016429 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
16433 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016434 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16438 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016439 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16443 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016444 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16448 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016449 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16450 msm_routing_get_port_mixer,
16451 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016452};
16453
16454static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016455 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16456 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016457 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16458 msm_routing_get_port_mixer,
16459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016460 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16461 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016462 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16463 msm_routing_get_port_mixer,
16464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016465 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16466 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016467 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16468 msm_routing_get_port_mixer,
16469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016470 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16471 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016472 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16473 msm_routing_get_port_mixer,
16474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016475 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16476 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016477 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
16481 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016482 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
16486 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016487 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16491 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016492 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_TDM_TX_0", SND_SOC_NOPM,
16496 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016497 MSM_BACKEND_DAI_TERT_TDM_TX_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
16501 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016502 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
16506 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016507 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
16511 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016512 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
16516 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016517 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
16521 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016522 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
16526 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016527 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
16531 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016532 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
16536 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016537 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16541 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016542 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16546 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016547 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16551 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016552 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16553 msm_routing_get_port_mixer,
16554 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016555};
16556
16557static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016558 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16559 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016560 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16561 msm_routing_get_port_mixer,
16562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016563 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16564 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016565 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16566 msm_routing_get_port_mixer,
16567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016568 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16569 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016570 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16571 msm_routing_get_port_mixer,
16572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016573 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16574 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016575 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16576 msm_routing_get_port_mixer,
16577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016578 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16579 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016580 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
16584 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016585 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
16589 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016590 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16594 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016595 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_TDM_TX_0", SND_SOC_NOPM,
16599 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016600 MSM_BACKEND_DAI_TERT_TDM_TX_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
16604 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016605 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
16609 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016610 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
16614 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016615 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
16619 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016620 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
16624 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016625 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
16629 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016630 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
16634 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016635 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
16639 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016640 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16644 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016645 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16649 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016650 MSM_BACKEND_DAI_QUIN_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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16654 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016655 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16656 msm_routing_get_port_mixer,
16657 msm_routing_put_port_mixer),
16658};
16659
Derek Chenb9048cb2019-03-07 14:54:13 -050016660static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
16661 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
16662 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
16663 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
16664 msm_routing_get_port_mixer,
16665 msm_routing_put_port_mixer),
16666};
16667
Rohit Kumara5077932017-09-10 22:05:05 +053016668static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016669 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16670 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016671 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16672 msm_routing_get_port_mixer,
16673 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016674 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16675 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016676 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16677 msm_routing_get_port_mixer,
16678 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016679 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16680 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016681 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16682 msm_routing_get_port_mixer,
16683 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016684 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16685 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016686 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16687 msm_routing_get_port_mixer,
16688 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016689 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16690 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016691 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16692 msm_routing_get_port_mixer,
16693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016694 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16695 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016696 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16697 msm_routing_get_port_mixer,
16698 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016699 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16700 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016701 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16702 msm_routing_get_port_mixer,
16703 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016704 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16705 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016706 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16707 msm_routing_get_port_mixer,
16708 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016709 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16710 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016711 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16712 msm_routing_get_port_mixer,
16713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016714 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16715 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016716 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16717 msm_routing_get_port_mixer,
16718 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016719 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16720 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016721 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16722 msm_routing_get_port_mixer,
16723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016724 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16725 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016726 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16727 msm_routing_get_port_mixer,
16728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016729 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16730 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016731 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16732 msm_routing_get_port_mixer,
16733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016734 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16735 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016736 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16737 msm_routing_get_port_mixer,
16738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016739 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16740 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016741 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16742 msm_routing_get_port_mixer,
16743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016744 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16745 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016746 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16747 msm_routing_get_port_mixer,
16748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016749 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16750 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016751 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16752 msm_routing_get_port_mixer,
16753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016754 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16755 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016756 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16757 msm_routing_get_port_mixer,
16758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016759 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16760 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016761 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16762 msm_routing_get_port_mixer,
16763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016764 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16765 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016766 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16767 msm_routing_get_port_mixer,
16768 msm_routing_put_port_mixer),
16769};
16770
16771static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016772 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16773 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016774 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16775 msm_routing_get_port_mixer,
16776 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016777 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16778 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016779 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16780 msm_routing_get_port_mixer,
16781 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016782 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16783 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016784 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16785 msm_routing_get_port_mixer,
16786 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016787 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16788 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016789 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16790 msm_routing_get_port_mixer,
16791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016792 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16793 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016794 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16795 msm_routing_get_port_mixer,
16796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016797 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16798 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016799 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16800 msm_routing_get_port_mixer,
16801 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016802 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16803 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016804 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16805 msm_routing_get_port_mixer,
16806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016807 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16808 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016809 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16810 msm_routing_get_port_mixer,
16811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016812 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16813 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016814 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16815 msm_routing_get_port_mixer,
16816 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016817 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16818 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016819 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16820 msm_routing_get_port_mixer,
16821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016822 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16823 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016824 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16825 msm_routing_get_port_mixer,
16826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016827 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16828 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016829 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16830 msm_routing_get_port_mixer,
16831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016832 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16833 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016834 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16835 msm_routing_get_port_mixer,
16836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016837 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16838 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016839 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16840 msm_routing_get_port_mixer,
16841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016842 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16843 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016844 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16845 msm_routing_get_port_mixer,
16846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016847 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16848 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016849 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16850 msm_routing_get_port_mixer,
16851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016852 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16853 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016854 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16855 msm_routing_get_port_mixer,
16856 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016857 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16858 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016859 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16860 msm_routing_get_port_mixer,
16861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016862 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16863 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016864 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16865 msm_routing_get_port_mixer,
16866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016867 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16868 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016869 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16870 msm_routing_get_port_mixer,
16871 msm_routing_put_port_mixer),
16872};
16873
16874static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016875 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16876 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016877 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16878 msm_routing_get_port_mixer,
16879 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016880 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16881 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016882 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16883 msm_routing_get_port_mixer,
16884 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016885 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16886 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016887 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16888 msm_routing_get_port_mixer,
16889 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016890 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16891 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016892 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16893 msm_routing_get_port_mixer,
16894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016895 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16896 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016897 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16898 msm_routing_get_port_mixer,
16899 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016900 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16901 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016902 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16903 msm_routing_get_port_mixer,
16904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016905 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16906 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016907 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16908 msm_routing_get_port_mixer,
16909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016910 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16911 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016912 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16913 msm_routing_get_port_mixer,
16914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016915 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16916 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016917 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16918 msm_routing_get_port_mixer,
16919 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016920 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16921 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016922 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16923 msm_routing_get_port_mixer,
16924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016925 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16926 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016927 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16928 msm_routing_get_port_mixer,
16929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016930 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16931 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016932 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16933 msm_routing_get_port_mixer,
16934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016935 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16936 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016937 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16938 msm_routing_get_port_mixer,
16939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016940 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16941 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016942 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16943 msm_routing_get_port_mixer,
16944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016945 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16946 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016947 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16948 msm_routing_get_port_mixer,
16949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016950 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16951 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016952 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16953 msm_routing_get_port_mixer,
16954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016955 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16956 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016957 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16958 msm_routing_get_port_mixer,
16959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016960 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16961 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016962 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16963 msm_routing_get_port_mixer,
16964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016965 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16966 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016967 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16968 msm_routing_get_port_mixer,
16969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016970 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16971 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016972 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16973 msm_routing_get_port_mixer,
16974 msm_routing_put_port_mixer),
16975};
16976
16977static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016978 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16979 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016980 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16981 msm_routing_get_port_mixer,
16982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016983 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16984 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016985 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16986 msm_routing_get_port_mixer,
16987 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016988 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16989 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016990 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16991 msm_routing_get_port_mixer,
16992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016993 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16994 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016995 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16996 msm_routing_get_port_mixer,
16997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016998 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16999 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017000 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17001 msm_routing_get_port_mixer,
17002 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017003 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17004 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017005 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17006 msm_routing_get_port_mixer,
17007 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017008 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17009 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017010 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17011 msm_routing_get_port_mixer,
17012 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017013 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17014 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017015 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17016 msm_routing_get_port_mixer,
17017 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017018 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17019 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017020 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
17021 msm_routing_get_port_mixer,
17022 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017023 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
17024 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017025 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
17026 msm_routing_get_port_mixer,
17027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017028 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
17029 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017030 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
17031 msm_routing_get_port_mixer,
17032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017033 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
17034 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017035 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
17036 msm_routing_get_port_mixer,
17037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017038 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17039 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017040 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17041 msm_routing_get_port_mixer,
17042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017043 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17044 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017045 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17046 msm_routing_get_port_mixer,
17047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017048 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17049 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017050 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17051 msm_routing_get_port_mixer,
17052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017053 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17054 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017055 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17056 msm_routing_get_port_mixer,
17057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017058 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17059 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017060 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17061 msm_routing_get_port_mixer,
17062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017063 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17064 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017065 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17066 msm_routing_get_port_mixer,
17067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017068 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17069 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017070 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17071 msm_routing_get_port_mixer,
17072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017073 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17074 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017075 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17076 msm_routing_get_port_mixer,
17077 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017078};
17079
17080static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017081 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17082 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017083 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017085 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17086 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017087 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17088 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017089 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17090 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017091 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017093 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17094 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017095 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17096 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017097 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17098 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017099 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017101 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17102 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017103 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017105 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17106 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017107 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17108 msm_routing_put_port_mixer),
17109};
17110
17111static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017112 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17113 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017114 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017116 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17117 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017118 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017120 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17121 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017122 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017124 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17125 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017126 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017128 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17129 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017130 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017132 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17133 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017134 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17135 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017136 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17137 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017138 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17139 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017140 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17141 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017142 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017144 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17145 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017146 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17147 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017148};
17149
17150static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017151 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17152 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017153 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17154 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017155 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17156 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017157 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17158 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017159 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17160 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017161 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17162 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017163 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17164 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017165 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17166 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017167 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17168 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017169 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17170 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017171 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17172 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017173 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17174 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017175 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17176 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017177 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17178 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017179 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17180 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017181 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17182 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017183 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17184 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17185 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17186 msm_routing_put_listen_mixer),
17187 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17188 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17189 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17190 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017191 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17192 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17193 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17194 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017195 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17196 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17197 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17198 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017199 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17200 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17201 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17202 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017203};
17204
17205static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017206 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17207 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017208 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17209 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017210 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
17211 SND_SOC_NOPM,
17212 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017213 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17214 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017215 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17216 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017217 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17218 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017219 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17220 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017221 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17222 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017223 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17224 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017225 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17226 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017227 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17228 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017229 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17230 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017231 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17232 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017233 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17234 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017235 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17236 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017237 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17238 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017239 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17240 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17241 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17242 msm_routing_put_listen_mixer),
17243 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17244 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17245 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17246 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017247 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17248 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17249 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17250 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017251 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17252 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17253 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17254 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017255 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17256 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17257 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17258 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017259};
17260
17261static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017262 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17263 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017264 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17265 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017266 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17267 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017268 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17269 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017270 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17271 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017272 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17273 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017274 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17275 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017276 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17277 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017278 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17279 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017280 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17281 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017282 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17283 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017284 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17285 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017286 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17287 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017288 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17289 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017290 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17291 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017292 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17293 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017294 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17295 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17296 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17297 msm_routing_put_listen_mixer),
17298 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17299 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17300 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17301 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017302 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17303 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17304 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17305 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017306 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17307 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17308 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17309 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017310 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17311 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17312 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17313 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017314};
17315
17316static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017317 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17318 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017319 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17320 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017321 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17322 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017323 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17324 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017325 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17326 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017327 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17328 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017329 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17330 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017331 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17332 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017333 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17334 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017335 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17336 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017337 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17338 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017339 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17340 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017341 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17342 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017343 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17344 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017345 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17346 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017347 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17348 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017349 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17350 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17351 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17352 msm_routing_put_listen_mixer),
17353 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17354 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17355 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17356 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017357 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17358 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17359 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17360 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017361 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17362 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17363 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17364 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017365 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17366 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17367 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17368 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017369};
17370
17371static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017372 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17373 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017374 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17375 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017376 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17377 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017378 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17379 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017380 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17381 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017382 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17383 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017384 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17385 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017386 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17387 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017388 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17389 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017390 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17391 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017392 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17393 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017394 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17395 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017396 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17397 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017398 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17399 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017400 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17401 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017402 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17403 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017404 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17405 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17406 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17407 msm_routing_put_listen_mixer),
17408 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17409 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17410 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17411 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017412 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17413 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17414 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17415 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017416 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17417 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17418 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17419 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017420 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17421 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17422 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17423 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017424};
17425
17426static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017427 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17428 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017429 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17430 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017431 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17432 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017433 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17434 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017435 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17436 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017437 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17438 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017439 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17440 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017441 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17442 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017443 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17444 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017445 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17446 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017447 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17448 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017449 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17450 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017451 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17452 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017453 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17454 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017455 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17456 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017457 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17458 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017459 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17460 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17461 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17462 msm_routing_put_listen_mixer),
17463 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17464 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17465 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17466 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017467 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17468 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17469 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17470 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017471 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17472 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17473 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17474 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017475 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17476 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17477 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17478 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017479};
17480
17481static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017482 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17483 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017484 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17485 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017486 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17487 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017488 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17489 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017490 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17491 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017492 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17493 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017494 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17495 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017496 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17497 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017498 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17499 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017500 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17501 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017502 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17503 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017504 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17505 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017506 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17507 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017508 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17509 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017510 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17511 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017512 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17513 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017514 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17515 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17516 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17517 msm_routing_put_listen_mixer),
17518 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17519 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17520 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17521 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017522 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17523 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17524 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17525 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017526 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17527 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17528 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17529 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017530 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17531 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17532 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17533 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017534};
17535
17536static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017537 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17538 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017539 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17540 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017541 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17542 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017543 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17544 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017545 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17546 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017547 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17548 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017549 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17550 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017551 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17552 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017553 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17554 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017555 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17556 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017557 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17558 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017559 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17560 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017561 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17562 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017563 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17564 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017565 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17566 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017567 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17568 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017569 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17570 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17571 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17572 msm_routing_put_listen_mixer),
17573 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17574 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17575 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17576 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017577 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17578 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17579 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17580 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017581 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17582 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17583 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17584 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017585 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17586 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17587 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17588 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017589};
17590
17591static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
17592 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17593 0, 1, 0, msm_routing_get_switch_mixer,
17594 msm_routing_put_switch_mixer);
17595
17596static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
17597 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17598 0, 1, 0, msm_routing_get_switch_mixer,
17599 msm_routing_put_switch_mixer);
17600
17601static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
17602 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17603 0, 1, 0, msm_routing_get_switch_mixer,
17604 msm_routing_put_switch_mixer);
17605
17606static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
17607 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17608 0, 1, 0, msm_routing_get_switch_mixer,
17609 msm_routing_put_switch_mixer);
17610
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017611static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
17612 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17613 0, 1, 0, msm_routing_get_switch_mixer,
17614 msm_routing_put_switch_mixer);
17615
17616static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017617 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17618 0, 1, 0, msm_routing_get_switch_mixer,
17619 msm_routing_put_switch_mixer);
17620
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017621static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
17622 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17623 0, 1, 0, msm_routing_get_switch_mixer,
17624 msm_routing_put_switch_mixer);
17625
17626static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
17627 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17628 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
17629 msm_routing_put_fm_pcmrx_switch_mixer);
17630
17631static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
17632 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17633 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
17634 msm_routing_put_int0_mi2s_switch_mixer);
17635
17636static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
17637 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17638 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
17639 msm_routing_put_int4_mi2s_switch_mixer);
17640
17641static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
17642 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17643 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
17644 msm_routing_put_pri_mi2s_switch_mixer);
17645
17646static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
17647 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17648 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
17649 msm_routing_put_sec_mi2s_switch_mixer);
17650
17651static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
17652 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17653 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
17654 msm_routing_put_tert_mi2s_switch_mixer);
17655
17656static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
17657 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17658 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
17659 msm_routing_put_quat_mi2s_switch_mixer);
17660
Rohit Kumara5077932017-09-10 22:05:05 +053017661static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
17662 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17663 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
17664 msm_routing_put_quin_mi2s_switch_mixer);
17665
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017666static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
17667 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17668 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17669 msm_routing_put_hfp_switch_mixer);
17670
17671static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
17672 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17673 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17674 msm_routing_put_hfp_switch_mixer);
17675
17676static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
17677 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17678 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17679 msm_routing_put_hfp_switch_mixer);
17680
17681static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
17682 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17683 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17684 msm_routing_put_hfp_switch_mixer);
17685
17686static const struct snd_kcontrol_new usb_switch_mixer_controls =
17687 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17688 0, 1, 0, msm_routing_get_usb_switch_mixer,
17689 msm_routing_put_usb_switch_mixer);
17690
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080017691static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
17692 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17693 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
17694 msm_routing_a2dp_switch_mixer_put);
17695
Zhou Songcaa541d2019-02-19 18:37:47 +080017696static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
17697 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17698 0, 1, 0, msm_routing_sco_switch_mixer_get,
17699 msm_routing_sco_switch_mixer_put);
17700
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017701static const struct soc_enum lsm_port_enum =
17702 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
17703
17704static const char * const lsm_func_text[] = {
17705 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
17706};
17707static const struct soc_enum lsm_func_enum =
17708 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
17709
17710static const struct snd_kcontrol_new lsm_controls[] = {
17711 /* kcontrol of lsm_function */
17712 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17713 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17714 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17715 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17716 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17717 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17718 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17719 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17720 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17721 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17722 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17723 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17724 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17725 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17726 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17727 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17728 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17729 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017730 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17731 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017732 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17733 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017734 /* kcontrol of lsm_port */
17735 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
17736 msm_routing_lsm_port_get,
17737 msm_routing_lsm_port_put),
17738 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
17739 msm_routing_lsm_port_get,
17740 msm_routing_lsm_port_put),
17741 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
17742 msm_routing_lsm_port_get,
17743 msm_routing_lsm_port_put),
17744 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
17745 msm_routing_lsm_port_get,
17746 msm_routing_lsm_port_put),
17747 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
17748 msm_routing_lsm_port_get,
17749 msm_routing_lsm_port_put),
17750 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
17751 msm_routing_lsm_port_get,
17752 msm_routing_lsm_port_put),
17753 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
17754 msm_routing_lsm_port_get,
17755 msm_routing_lsm_port_put),
17756 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
17757 msm_routing_lsm_port_get,
17758 msm_routing_lsm_port_put),
17759};
17760
17761static const char * const aanc_slim_0_rx_text[] = {
17762 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
17763 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
17764};
17765
17766static const struct soc_enum aanc_slim_0_rx_enum =
17767 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
17768 aanc_slim_0_rx_text);
17769
17770static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
17771 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
17772 msm_routing_slim_0_rx_aanc_mux_get,
17773 msm_routing_slim_0_rx_aanc_mux_put)
17774};
17775
Sudheer Papothic07b37a2018-05-04 05:56:47 +053017776static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
17777 struct snd_ctl_elem_value *ucontrol)
17778{
17779 ucontrol->value.integer.value[0] = aanc_level;
17780
17781 return 0;
17782}
17783
17784static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
17785 struct snd_ctl_elem_value *ucontrol)
17786{
17787 int ret = 0;
17788
17789 mutex_lock(&routing_lock);
17790 aanc_level = ucontrol->value.integer.value[0];
17791 pr_debug("%s: value: %ld\n",
17792 __func__, ucontrol->value.integer.value[0]);
17793 ret = afe_set_aanc_noise_level(aanc_level);
17794 mutex_unlock(&routing_lock);
17795
17796 return ret;
17797}
17798
17799static const struct snd_kcontrol_new aanc_noise_level[] = {
17800 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
17801 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
17802};
17803
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017804static int msm_routing_get_stereo_to_custom_stereo_control(
17805 struct snd_kcontrol *kcontrol,
17806 struct snd_ctl_elem_value *ucontrol)
17807{
17808 ucontrol->value.integer.value[0] = is_custom_stereo_on;
17809 return 0;
17810}
17811
17812static int msm_routing_put_stereo_to_custom_stereo_control(
17813 struct snd_kcontrol *kcontrol,
17814 struct snd_ctl_elem_value *ucontrol)
17815{
17816 int flag = 0, i = 0, rc = 0, idx = 0;
17817 int be_index = 0, port_id, topo_id;
17818 unsigned int session_id = 0;
17819 uint16_t op_FL_ip_FL_weight = 0;
17820 uint16_t op_FL_ip_FR_weight = 0;
17821 uint16_t op_FR_ip_FL_weight = 0;
17822 uint16_t op_FR_ip_FR_weight = 0;
17823
17824 flag = ucontrol->value.integer.value[0];
17825 pr_debug("%s E flag %d\n", __func__, flag);
17826
17827 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
17828 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
17829 __func__, is_custom_stereo_on, flag);
17830 return 0;
17831 }
17832 is_custom_stereo_on = flag ? true : false;
17833 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
17834 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
17835 port_id = msm_bedais[be_index].port_id;
17836 if (!msm_bedais[be_index].active)
17837 continue;
17838 if ((port_id != SLIMBUS_0_RX) &&
17839 (port_id != RT_PROXY_PORT_001_RX) &&
17840 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
17841 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
17842 continue;
17843
17844 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
17845 MSM_FRONTEND_DAI_MM_SIZE) {
17846 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
17847 LEGACY_PCM_MODE)
17848 goto skip_send_custom_stereo;
17849 session_id =
17850 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
17851 if (is_custom_stereo_on) {
17852 op_FL_ip_FL_weight =
17853 Q14_GAIN_ZERO_POINT_FIVE;
17854 op_FL_ip_FR_weight =
17855 Q14_GAIN_ZERO_POINT_FIVE;
17856 op_FR_ip_FL_weight =
17857 Q14_GAIN_ZERO_POINT_FIVE;
17858 op_FR_ip_FR_weight =
17859 Q14_GAIN_ZERO_POINT_FIVE;
17860 } else {
17861 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
17862 op_FL_ip_FR_weight = 0;
17863 op_FR_ip_FL_weight = 0;
17864 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
17865 }
17866 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17867 unsigned long copp =
17868 session_copp_map[i]
17869 [SESSION_TYPE_RX][be_index];
17870 if (!test_bit(idx, &copp))
17871 goto skip_send_custom_stereo;
17872 topo_id = adm_get_topology_for_port_copp_idx(
17873 msm_bedais[be_index].port_id, idx);
17874 if (topo_id < 0)
17875 pr_debug("%s:Err:custom stereo topo %d",
17876 __func__, topo_id);
17877 pr_debug("idx %d\n", idx);
17878 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17879 rc = msm_ds2_dap_set_custom_stereo_onoff
17880 (msm_bedais[be_index].port_id,
17881 idx, is_custom_stereo_on);
17882 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17883 rc = dolby_dap_set_custom_stereo_onoff(
17884 msm_bedais[be_index].port_id,
17885 idx, is_custom_stereo_on);
17886 else
17887 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17888 (msm_bedais[be_index].port_id,
17889 idx, session_id,
17890 op_FL_ip_FL_weight,
17891 op_FL_ip_FR_weight,
17892 op_FR_ip_FL_weight,
17893 op_FR_ip_FR_weight);
17894 if (rc < 0)
17895skip_send_custom_stereo:
17896 pr_err("%s: err setting custom stereo\n",
17897 __func__);
17898 }
17899
17900 }
17901 }
17902 return 0;
17903}
17904
17905static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17906 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17907 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17908 msm_routing_put_stereo_to_custom_stereo_control),
17909};
17910
17911static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17912 struct snd_ctl_elem_value *ucontrol)
17913{
17914 return 0;
17915}
17916
17917static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17918 struct snd_ctl_elem_value *ucontrol)
17919{
17920 int i = 0, j;
17921 int num_app_types = ucontrol->value.integer.value[i++];
17922
17923 pr_debug("%s\n", __func__);
17924
17925 memset(app_type_cfg, 0, MAX_APP_TYPES*
17926 sizeof(struct msm_pcm_routing_app_type_data));
17927 if (num_app_types > MAX_APP_TYPES) {
17928 pr_err("%s: number of app types exceed the max supported\n",
17929 __func__);
17930 return -EINVAL;
17931 }
17932 for (j = 0; j < num_app_types; j++) {
17933 app_type_cfg[j].app_type =
17934 ucontrol->value.integer.value[i++];
17935 app_type_cfg[j].sample_rate =
17936 ucontrol->value.integer.value[i++];
17937 app_type_cfg[j].bit_width =
17938 ucontrol->value.integer.value[i++];
17939 }
17940
17941 return 0;
17942}
17943
17944static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17945 struct snd_ctl_elem_value *ucontrol)
17946{
17947 int j, fe_id, be_id, port_type;
17948 int ret = 0;
17949 unsigned long copp;
17950 struct msm_pcm_routing_bdai_data *bedai;
17951 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17952 SESSION_TYPE_RX;
17953 int app_type = ucontrol->value.integer.value[1];
17954 int gain = (ucontrol->value.integer.value[2] +
17955 ucontrol->value.integer.value[3])/2;
17956
17957 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17958 MSM_AFE_PORT_TYPE_TX;
17959
17960 mutex_lock(&routing_lock);
17961 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17962 if (is_be_dai_extproc(be_id))
17963 continue;
17964
17965 bedai = &msm_bedais[be_id];
17966 if (afe_get_port_type(bedai->port_id) != port_type)
17967 continue;
17968
17969 if (!bedai->active)
17970 continue;
17971
17972 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17973 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17974 continue;
17975
17976 if (app_type !=
17977 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17978 continue;
17979
17980 copp = session_copp_map[fe_id][dir][be_id];
17981 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17982 if (!test_bit(j, &copp))
17983 continue;
17984 ret |= adm_set_volume(bedai->port_id, j, gain);
17985 }
17986 }
17987 }
17988 mutex_unlock(&routing_lock);
17989 return ret ? -EINVAL : 0;
17990}
17991
17992static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17993 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17994 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17995 msm_routing_put_app_type_cfg_control),
17996 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17997 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17998};
17999
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070018000static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
18001 struct snd_ctl_elem_value *ucontrol)
18002{
18003 int copp_idx, fe_id, be_id, port_type;
18004 int ret = 0;
18005 unsigned long copp;
18006 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018007 u8 *packed_params = NULL;
18008 struct param_hdr_v3 param_hdr;
18009 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
18010 sizeof(uint32_t));
18011
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070018012 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
18013 SESSION_TYPE_RX;
18014 int app_type = ucontrol->value.integer.value[1];
18015 int module_id = ucontrol->value.integer.value[2];
18016 int instance_id = ucontrol->value.integer.value[3];
18017 int param_id = ucontrol->value.integer.value[4];
18018 int param_value = ucontrol->value.integer.value[5];
18019
18020 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
18021 MSM_AFE_PORT_TYPE_TX;
18022 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
18023 __func__, app_type, module_id,
18024 instance_id, param_id, param_value);
18025
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018026 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
18027 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070018028 return -ENOMEM;
18029
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018030 memset(&param_hdr, 0, sizeof(param_hdr));
18031 param_hdr.module_id = module_id;
18032 param_hdr.instance_id = instance_id;
18033 param_hdr.param_id = param_id;
18034 param_hdr.param_size = sizeof(uint32_t);
18035
18036 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070018037
18038 mutex_lock(&routing_lock);
18039 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
18040 if (is_be_dai_extproc(be_id))
18041 continue;
18042
18043 bedai = &msm_bedais[be_id];
18044 if (afe_get_port_type(bedai->port_id) != port_type)
18045 continue;
18046
18047 if (!bedai->active)
18048 continue;
18049
18050 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
18051 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
18052 continue;
18053
18054 if (app_type !=
18055 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
18056 continue;
18057
18058 copp = session_copp_map[fe_id][dir][be_id];
18059 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
18060 copp_idx++) {
18061 if (!test_bit(copp_idx, &copp))
18062 continue;
18063
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018064 ret = q6common_pack_pp_params(packed_params,
18065 &param_hdr,
18066 (u8 *) &param_value,
18067 &packed_param_size);
18068 if (ret) {
18069 pr_err("%s: Failed to pack params, error %d\n",
18070 __func__, ret);
18071 goto done;
18072 }
18073
18074 ret = adm_set_pp_params(bedai->port_id,
18075 copp_idx, NULL,
18076 packed_params,
18077 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070018078 if (ret) {
18079 pr_err("%s: Setting param failed with err=%d\n",
18080 __func__, ret);
18081 ret = -EINVAL;
18082 goto done;
18083 }
18084 }
18085 }
18086 }
18087done:
18088 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018089 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070018090 return ret;
18091}
18092
18093static const struct snd_kcontrol_new module_cfg_controls[] = {
18094 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
18095 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
18096};
18097
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018098static int msm_routing_get_lsm_app_type_cfg_control(
18099 struct snd_kcontrol *kcontrol,
18100 struct snd_ctl_elem_value *ucontrol)
18101{
Meng Wangadbca4f2018-10-29 14:30:13 +080018102 int shift = ((struct soc_multi_mixer_control *)
18103 kcontrol->private_value)->shift;
18104 int i = 0, j = 0;
18105
18106 ucontrol->value.integer.value[i] = num_app_cfg_types;
18107
18108 for (j = 0; j < num_app_cfg_types; ++j) {
18109 ucontrol->value.integer.value[++i] =
18110 lsm_app_type_cfg[j].app_type;
18111 ucontrol->value.integer.value[++i] =
18112 lsm_app_type_cfg[j].sample_rate;
18113 ucontrol->value.integer.value[++i] =
18114 lsm_app_type_cfg[j].bit_width;
18115 if (shift == 1)
18116 ucontrol->value.integer.value[++i] =
18117 lsm_app_type_cfg[j].num_out_channels;
18118 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018119 return 0;
18120}
18121
18122static int msm_routing_put_lsm_app_type_cfg_control(
18123 struct snd_kcontrol *kcontrol,
18124 struct snd_ctl_elem_value *ucontrol)
18125{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070018126 int shift = ((struct soc_multi_mixer_control *)
18127 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018128 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018129
Meng Wangadbca4f2018-10-29 14:30:13 +080018130 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018131 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070018132 sizeof(struct msm_pcm_routing_app_type_data));
18133
Meng Wangadbca4f2018-10-29 14:30:13 +080018134 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018135 pr_err("%s: number of app types exceed the max supported\n",
18136 __func__);
18137 return -EINVAL;
18138 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070018139
Meng Wangadbca4f2018-10-29 14:30:13 +080018140 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018141 lsm_app_type_cfg[j].app_type =
18142 ucontrol->value.integer.value[i++];
18143 lsm_app_type_cfg[j].sample_rate =
18144 ucontrol->value.integer.value[i++];
18145 lsm_app_type_cfg[j].bit_width =
18146 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070018147 /* Shift of 1 indicates this is V2 mixer control */
18148 if (shift == 1)
18149 lsm_app_type_cfg[j].num_out_channels =
18150 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018151 }
18152
18153 return 0;
18154}
18155
18156static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
18157 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
18158 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
18159 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070018160 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
18161 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
18162 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018163};
18164
18165static int msm_routing_get_use_ds1_or_ds2_control(
18166 struct snd_kcontrol *kcontrol,
18167 struct snd_ctl_elem_value *ucontrol)
18168{
18169 ucontrol->value.integer.value[0] = is_ds2_on;
18170 return 0;
18171}
18172
18173static int msm_routing_put_use_ds1_or_ds2_control(
18174 struct snd_kcontrol *kcontrol,
18175 struct snd_ctl_elem_value *ucontrol)
18176{
18177 is_ds2_on = ucontrol->value.integer.value[0];
18178 return 0;
18179}
18180
18181static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
18182 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
18183 1, 0, msm_routing_get_use_ds1_or_ds2_control,
18184 msm_routing_put_use_ds1_or_ds2_control),
18185};
18186
18187int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
18188 struct snd_ctl_elem_value *ucontrol) {
18189 int rc = 0;
18190 int be_idx = 0;
18191 char *param_value;
18192 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018193 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
18194 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018195
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018196 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018197 if (!param_value)
18198 return -ENOMEM;
18199
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018200 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018201 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
18202 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
18203 break;
18204 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018205 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
18206 param_hdr.instance_id = INSTANCE_ID_0;
18207 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
18208 param_hdr.param_size = param_size;
18209 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
18210 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018211 if (rc) {
18212 pr_err("%s: get parameters failed:%d\n", __func__, rc);
18213 kfree(param_value);
18214 return -EINVAL;
18215 }
18216 update_param_value = (int *)param_value;
18217 ucontrol->value.integer.value[0] = update_param_value[0];
18218
18219 pr_debug("%s: FROM DSP value[0] 0x%x\n",
18220 __func__, update_param_value[0]);
18221 }
18222 kfree(param_value);
18223 return 0;
18224}
18225
18226static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
18227 struct snd_ctl_elem_value *ucontrol)
18228{
18229 voc_session_id = ucontrol->value.integer.value[0];
18230
18231 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
18232
18233 return 0;
18234}
18235
18236static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
18237 struct snd_ctl_elem_value *ucontrol)
18238{
18239 ucontrol->value.integer.value[0] = voc_session_id;
18240
18241 return 0;
18242}
18243
18244static struct snd_kcontrol_new msm_voc_session_controls[] = {
18245 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
18246 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
18247 msm_voc_session_id_put),
18248};
18249
18250static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
18251 struct snd_ctl_elem_info *uinfo)
18252{
18253 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
18254 uinfo->count = sizeof(struct sound_focus_param);
18255
18256 return 0;
18257}
18258
18259static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
18260 struct snd_ctl_elem_value *ucontrol)
18261{
18262 int ret = 0;
18263 struct sound_focus_param soundFocusData;
18264
18265 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
18266 sizeof(struct sound_focus_param));
18267 ret = voc_set_sound_focus(soundFocusData);
18268 if (ret) {
18269 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
18270 __func__, ret);
18271
18272 ret = -EINVAL;
18273 }
18274
18275 return ret;
18276}
18277
18278static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
18279 struct snd_ctl_elem_value *ucontrol)
18280{
18281 int ret = 0;
18282 struct sound_focus_param soundFocusData;
18283
18284 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
18285
18286 ret = voc_get_sound_focus(&soundFocusData);
18287 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018288 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018289 __func__, ret);
18290
18291 ret = -EINVAL;
18292 goto done;
18293 }
18294 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
18295 sizeof(struct sound_focus_param));
18296
18297done:
18298 return ret;
18299}
18300
18301static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
18302 struct snd_ctl_elem_info *uinfo)
18303{
18304 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
18305 uinfo->count = sizeof(struct source_tracking_param);
18306
18307 return 0;
18308}
18309
18310static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
18311 struct snd_ctl_elem_value *ucontrol)
18312{
Meng Wang92edfde2018-04-24 12:18:37 +080018313 int ret = 0;
18314 struct source_tracking_param sourceTrackingData;
18315
18316 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
18317
18318 ret = voc_get_source_tracking(&sourceTrackingData);
18319 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018320 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080018321 __func__, ret);
18322
18323 ret = -EINVAL;
18324 goto done;
18325 }
18326 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
18327 sizeof(struct source_tracking_param));
18328
18329done:
18330 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018331}
18332
18333static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
18334 int *copp_idx)
18335{
18336 int i, idx, be_idx;
18337 int ret = 0;
18338 unsigned long copp;
18339
18340 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
18341
18342 ret = q6audio_validate_port(port_id);
18343 if (ret < 0) {
18344 pr_err("%s: port validation failed id 0x%x ret %d\n",
18345 __func__, port_id, ret);
18346
18347 ret = -EINVAL;
18348 goto done;
18349 }
18350
18351 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
18352 if (msm_bedais[be_idx].port_id == port_id)
18353 break;
18354 }
18355 if (be_idx >= MSM_BACKEND_DAI_MAX) {
18356 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
18357
18358 ret = -EINVAL;
18359 goto done;
18360 }
18361
18362 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018363 MSM_FRONTEND_DAI_MAX) {
18364 if (!(is_mm_lsm_fe_id(i) &&
18365 route_check_fe_id_adm_support(i)))
18366 continue;
18367
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018368 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
18369 copp = session_copp_map[i]
18370 [session_type][be_idx];
18371 if (test_bit(idx, &copp))
18372 break;
18373 }
18374 if (idx >= MAX_COPPS_PER_PORT)
18375 continue;
18376 else
18377 break;
18378 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018379 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018380 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018381
18382 ret = -EINVAL;
18383 goto done;
18384 }
18385 *copp_idx = idx;
18386 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
18387
18388done:
18389 return ret;
18390}
18391
18392static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
18393 const char *prefix, int *port_id)
18394{
18395 int ret = 0;
18396
18397 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
18398
18399 /*
18400 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
18401 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
18402 * and compare the string with the backend name to derive the port id.
18403 */
18404 if (!strcmp(kcontrol->id.name + strlen(prefix),
18405 "SLIMBUS_0")) {
18406 *port_id = SLIMBUS_0_TX;
18407 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18408 "TERT_MI2S")) {
18409 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
18410 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18411 "INT3_MI2S")) {
18412 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018413 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18414 "VA_CDC_DMA_TX_0")) {
18415 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018416 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18417 "TX_CDC_DMA_TX_3")) {
18418 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018419 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18420 "QUIN_TDM_TX_0")) {
18421 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053018422 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18423 "PRIMARY_TDM")) {
18424 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018425 } else {
18426 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
18427 __func__, kcontrol->id.name);
18428
18429 ret = -EINVAL;
18430 goto done;
18431 }
18432 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
18433 __func__, kcontrol->id.name, *port_id);
18434
18435done:
18436 return ret;
18437}
18438
18439static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
18440 struct snd_ctl_elem_value *ucontrol)
18441{
18442 int ret = 0;
18443 struct sound_focus_param soundFocusData;
18444 int port_id, copp_idx;
18445
18446 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18447 "Sound Focus Audio Tx ", &port_id);
18448 if (ret != 0) {
18449 pr_err("%s: Error in deriving port id, err=%d\n",
18450 __func__, ret);
18451
18452 ret = -EINVAL;
18453 goto done;
18454 }
18455
18456 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18457 &copp_idx);
18458 if (ret) {
18459 pr_err("%s: Could not get copp idx for port_id=%d\n",
18460 __func__, port_id);
18461
18462 ret = -EINVAL;
18463 goto done;
18464 }
18465
18466 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
18467 sizeof(struct sound_focus_param));
18468
18469 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
18470 if (ret) {
18471 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
18472 __func__, ret);
18473
18474 ret = -EINVAL;
18475 goto done;
18476 }
18477
18478done:
18479 return ret;
18480}
18481
18482static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
18483 struct snd_ctl_elem_value *ucontrol)
18484{
18485 int ret = 0;
18486 struct sound_focus_param soundFocusData;
18487 int port_id, copp_idx;
18488
18489 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18490 "Sound Focus Audio Tx ", &port_id);
18491 if (ret) {
18492 pr_err("%s: Error in deriving port id, err=%d\n",
18493 __func__, ret);
18494
18495 ret = -EINVAL;
18496 goto done;
18497 }
18498
18499 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18500 &copp_idx);
18501 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018502 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018503 __func__, port_id);
18504
18505 ret = -EINVAL;
18506 goto done;
18507 }
18508
18509 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
18510 if (ret) {
18511 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
18512 __func__, ret);
18513
18514 ret = -EINVAL;
18515 goto done;
18516 }
18517
18518 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
18519 sizeof(struct sound_focus_param));
18520
18521done:
18522 return ret;
18523}
18524
18525static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
18526 struct snd_ctl_elem_value *ucontrol)
18527{
18528 int ret = 0;
18529 struct source_tracking_param sourceTrackingData;
18530 int port_id, copp_idx;
18531
18532 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18533 "Source Tracking Audio Tx ", &port_id);
18534 if (ret) {
18535 pr_err("%s: Error in deriving port id, err=%d\n",
18536 __func__, ret);
18537
18538 ret = -EINVAL;
18539 goto done;
18540 }
18541
18542 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18543 &copp_idx);
18544 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018545 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018546 __func__, port_id);
18547
18548 ret = -EINVAL;
18549 goto done;
18550 }
18551
18552 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
18553 if (ret) {
18554 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
18555 __func__, ret);
18556
18557 ret = -EINVAL;
18558 goto done;
18559 }
18560
18561 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
18562 sizeof(struct source_tracking_param));
18563
18564done:
18565 return ret;
18566}
18567
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018568static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
18569 struct snd_ctl_elem_info *uinfo)
18570{
18571 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
18572 uinfo->count = sizeof(struct doa_tracking_mon_param);
18573
18574 return 0;
18575}
18576
18577static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
18578 struct snd_ctl_elem_value *ucontrol)
18579{
18580 int ret = 0;
18581 struct doa_tracking_mon_param doa_tracking_data;
18582 int port_id, copp_idx;
18583
18584 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
18585 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18586 "Doa Tracking Monitor Listen ", &port_id);
18587 if (ret) {
18588 pr_err("%s: Error in deriving port id, err=%d\n",
18589 __func__, ret);
18590 ret = -EINVAL;
18591 goto done;
18592 }
18593
18594 /*
18595 * If copp id exists for given port id, query adm to get doa data.
18596 * Else query afe for doa tracking params.
18597 * This is to support in cases where LSM directly connects to
18598 * AFE for FFNS.
18599 */
18600 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18601 &copp_idx);
18602 if (!ret)
18603 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
18604 &doa_tracking_data);
18605 else
18606 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
18607
18608 if (ret) {
18609 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
18610 __func__, ret);
18611 ret = -EINVAL;
18612 goto done;
18613 }
18614
18615 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
18616 sizeof(struct doa_tracking_mon_param));
18617done:
18618 return ret;
18619}
18620
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018621static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
18622 {
18623 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18624 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18625 .name = "Sound Focus Voice Tx SLIMBUS_0",
18626 .info = msm_sound_focus_info,
18627 .get = msm_voice_sound_focus_get,
18628 .put = msm_voice_sound_focus_put,
18629 },
18630 {
18631 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18632 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18633 .name = "Source Tracking Voice Tx SLIMBUS_0",
18634 .info = msm_source_tracking_info,
18635 .get = msm_voice_source_tracking_get,
18636 },
18637 {
18638 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18639 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18640 .name = "Sound Focus Audio Tx SLIMBUS_0",
18641 .info = msm_sound_focus_info,
18642 .get = msm_audio_sound_focus_get,
18643 .put = msm_audio_sound_focus_put,
18644 },
18645 {
18646 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18647 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18648 .name = "Source Tracking Audio Tx SLIMBUS_0",
18649 .info = msm_source_tracking_info,
18650 .get = msm_audio_source_tracking_get,
18651 },
18652 {
18653 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18654 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18655 .name = "Sound Focus Voice Tx TERT_MI2S",
18656 .info = msm_sound_focus_info,
18657 .get = msm_voice_sound_focus_get,
18658 .put = msm_voice_sound_focus_put,
18659 },
18660 {
18661 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18662 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18663 .name = "Source Tracking Voice Tx TERT_MI2S",
18664 .info = msm_source_tracking_info,
18665 .get = msm_voice_source_tracking_get,
18666 },
18667 {
18668 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18669 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18670 .name = "Sound Focus Audio Tx TERT_MI2S",
18671 .info = msm_sound_focus_info,
18672 .get = msm_audio_sound_focus_get,
18673 .put = msm_audio_sound_focus_put,
18674 },
18675 {
18676 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18677 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18678 .name = "Source Tracking Audio Tx TERT_MI2S",
18679 .info = msm_source_tracking_info,
18680 .get = msm_audio_source_tracking_get,
18681 },
18682 {
18683 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18684 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18685 .name = "Sound Focus Voice Tx INT3_MI2S",
18686 .info = msm_sound_focus_info,
18687 .get = msm_voice_sound_focus_get,
18688 .put = msm_voice_sound_focus_put,
18689 },
18690 {
18691 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18692 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18693 .name = "Source Tracking Voice Tx INT3_MI2S",
18694 .info = msm_source_tracking_info,
18695 .get = msm_voice_source_tracking_get,
18696 },
18697 {
18698 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18699 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18700 .name = "Sound Focus Audio Tx INT3_MI2S",
18701 .info = msm_sound_focus_info,
18702 .get = msm_audio_sound_focus_get,
18703 .put = msm_audio_sound_focus_put,
18704 },
18705 {
18706 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18707 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18708 .name = "Source Tracking Audio Tx INT3_MI2S",
18709 .info = msm_source_tracking_info,
18710 .get = msm_audio_source_tracking_get,
18711 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018712 {
18713 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18714 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18715 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
18716 .info = msm_sound_focus_info,
18717 .get = msm_voice_sound_focus_get,
18718 .put = msm_voice_sound_focus_put,
18719 },
18720 {
18721 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18722 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18723 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
18724 .info = msm_source_tracking_info,
18725 .get = msm_voice_source_tracking_get,
18726 },
18727 {
18728 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18729 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18730 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
18731 .info = msm_sound_focus_info,
18732 .get = msm_audio_sound_focus_get,
18733 .put = msm_audio_sound_focus_put,
18734 },
18735 {
18736 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18737 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18738 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
18739 .info = msm_source_tracking_info,
18740 .get = msm_audio_source_tracking_get,
18741 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018742 {
18743 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18744 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18745 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
18746 .info = msm_sound_focus_info,
18747 .get = msm_voice_sound_focus_get,
18748 .put = msm_voice_sound_focus_put,
18749 },
18750 {
18751 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18752 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18753 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
18754 .info = msm_source_tracking_info,
18755 .get = msm_voice_source_tracking_get,
18756 },
18757 {
18758 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18759 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18760 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
18761 .info = msm_sound_focus_info,
18762 .get = msm_audio_sound_focus_get,
18763 .put = msm_audio_sound_focus_put,
18764 },
18765 {
18766 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18767 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18768 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
18769 .info = msm_source_tracking_info,
18770 .get = msm_audio_source_tracking_get,
18771 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018772 {
18773 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18774 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18775 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
18776 .info = msm_sound_focus_info,
18777 .get = msm_voice_sound_focus_get,
18778 .put = msm_voice_sound_focus_put,
18779 },
18780 {
18781 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18782 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18783 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
18784 .info = msm_source_tracking_info,
18785 .get = msm_voice_source_tracking_get,
18786 },
18787 {
18788 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18789 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18790 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
18791 .info = msm_sound_focus_info,
18792 .get = msm_audio_sound_focus_get,
18793 .put = msm_audio_sound_focus_put,
18794 },
18795 {
18796 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18797 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18798 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
18799 .info = msm_source_tracking_info,
18800 .get = msm_audio_source_tracking_get,
18801 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018802 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053018803 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18804 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18805 .name = "Sound Focus Audio Tx PRIMARY_TDM",
18806 .info = msm_sound_focus_info,
18807 .get = msm_audio_sound_focus_get,
18808 .put = msm_audio_sound_focus_put,
18809 },
18810 {
18811 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18812 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18813 .name = "Source Tracking Audio Tx PRIMARY_TDM",
18814 .info = msm_source_tracking_info,
18815 .get = msm_audio_source_tracking_get,
18816 },
18817 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018818 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18819 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18820 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
18821 .info = msm_doa_tracking_mon_info,
18822 .get = msm_doa_tracking_mon_get,
18823 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018824};
18825
18826static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
18827 struct snd_ctl_elem_value *ucontrol)
18828{
18829 int ret = 0;
18830 int item;
18831 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18832
18833 pr_debug("%s item is %d\n", __func__,
18834 ucontrol->value.enumerated.item[0]);
18835 mutex_lock(&routing_lock);
18836 item = ucontrol->value.enumerated.item[0];
18837 if (item < e->items) {
18838 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18839 __func__, e->shift_l, e->values[item]);
18840 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18841 e->values[item] < MSM_BACKEND_DAI_MAX)
18842 /* Enable feedback TX path */
18843 ret = afe_spk_prot_feed_back_cfg(
18844 msm_bedais[e->values[item]].port_id,
18845 msm_bedais[e->shift_l].port_id, 1, 0, 1);
18846 else {
18847 pr_debug("%s values are out of range item %d\n",
18848 __func__, e->values[item]);
18849 /* Disable feedback TX path */
18850 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18851 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
18852 else
18853 ret = -EINVAL;
18854 }
18855 } else {
18856 pr_err("%s item value is out of range item\n", __func__);
18857 ret = -EINVAL;
18858 }
18859 mutex_unlock(&routing_lock);
18860 return ret;
18861}
18862
18863static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
18864 struct snd_ctl_elem_value *ucontrol)
18865{
18866 int ret = 0;
18867 int item;
18868 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18869
18870 pr_debug("%s item is %d\n", __func__,
18871 ucontrol->value.enumerated.item[0]);
18872 mutex_lock(&routing_lock);
18873 item = ucontrol->value.enumerated.item[0];
18874 if (item < e->items) {
18875 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18876 __func__, e->shift_l, e->values[item]);
18877 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18878 e->values[item] < MSM_BACKEND_DAI_MAX)
18879 /* Enable feedback TX path */
18880 ret = afe_spk_prot_feed_back_cfg(
18881 msm_bedais[e->values[item]].port_id,
18882 msm_bedais[e->shift_l].port_id,
18883 1, 1, 1);
18884 else {
18885 pr_debug("%s values are out of range item %d\n",
18886 __func__, e->values[item]);
18887 /* Disable feedback TX path */
18888 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18889 ret = afe_spk_prot_feed_back_cfg(0,
18890 0, 0, 0, 0);
18891 else
18892 ret = -EINVAL;
18893 }
18894 } else {
18895 pr_err("%s item value is out of range item\n", __func__);
18896 ret = -EINVAL;
18897 }
18898 mutex_unlock(&routing_lock);
18899 return ret;
18900}
18901
18902static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
18903 struct snd_ctl_elem_value *ucontrol)
18904{
18905 pr_debug("%s\n", __func__);
18906 return 0;
18907}
18908
18909static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
18910 struct snd_ctl_elem_value *ucontrol)
18911{
18912 pr_debug("%s\n", __func__);
18913 ucontrol->value.enumerated.item[0] = 0;
18914 return 0;
18915}
18916
18917static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
18918 "ZERO", "SLIM4_TX"
18919};
18920
18921static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
18922 "ZERO", "SLIM4_TX"
18923};
18924
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018925static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
18926 "ZERO", "WSA_CDC_DMA_TX_0"
18927};
18928
18929static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
18930 "ZERO", "WSA_CDC_DMA_TX_0"
18931};
18932
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018933static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
18934 "ZERO", "SENARY_TX"
18935};
18936
18937static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
18938 "ZERO", "INT5_MI2S_TX"
18939};
18940
18941static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
18942 "ZERO", "INT5_MI2S_TX"
18943};
18944
Josh Kirschea69fed2018-12-11 16:15:08 -080018945static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018946 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18947};
18948
Josh Kirschea69fed2018-12-11 16:15:08 -080018949static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018950 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18951};
18952
Josh Kirschea69fed2018-12-11 16:15:08 -080018953static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018954 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18955};
18956
Josh Kirschea69fed2018-12-11 16:15:08 -080018957static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018958 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18959};
18960
18961
Josh Kirschea69fed2018-12-11 16:15:08 -080018962static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018963 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18964};
18965
Josh Kirschea69fed2018-12-11 16:15:08 -080018966static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018967 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18968};
18969
Josh Kirschea69fed2018-12-11 16:15:08 -080018970static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018971 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18972};
18973
18974static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18975 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18976 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18977 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18978
18979static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18980 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18981 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18982 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18983
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018984static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18985 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18986 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18987 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18988
18989static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18990 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18991 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18992 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18993
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018994static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18995 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18996 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18997 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18998
18999static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
19000 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
19001 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
19002 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
19003 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
19004
19005static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
19006 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
19007 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
19008 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
19009 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
19010
19011static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
19012 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
19013 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
19014 spkr_prot_put_vi_lch_port);
19015
19016static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
19017 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
19018 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
19019 spkr_prot_put_vi_rch_port);
19020
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019021static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
19022 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
19023 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
19024 spkr_prot_put_vi_lch_port);
19025
19026static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
19027 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
19028 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
19029 spkr_prot_put_vi_rch_port);
19030
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019031static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
19032 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
19033 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
19034 spkr_prot_put_vi_lch_port);
19035
19036static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
19037 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
19038 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
19039 spkr_prot_put_vi_lch_port);
19040
19041static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
19042 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
19043 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
19044 spkr_prot_put_vi_rch_port);
19045
19046static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
19047 /* Frontend AIF */
19048 /* Widget name equals to Front-End DAI name<Need confirmation>,
19049 * Stream name must contains substring of front-end dai name
19050 */
19051 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
19052 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
19053 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
19054 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
19055 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
19056 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
19057 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
19058 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
19059 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
19060 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
19061 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
19062 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
19063 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
19064 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
19065 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
19066 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
19067 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019068 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053019069 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019070 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
19071 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
19072 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
19073 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
19074 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
19075 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
19076 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
19077 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
19078 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019079 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019080 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019081 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
19082 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
19083 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
19084 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019085 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053019086 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080019087 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
19088 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019089 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
19090 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
19091 "VoiceMMode1 Playback", 0, 0, 0, 0),
19092 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
19093 "VoiceMMode1 Capture", 0, 0, 0, 0),
19094 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
19095 "VoiceMMode2 Playback", 0, 0, 0, 0),
19096 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
19097 "VoiceMMode2 Capture", 0, 0, 0, 0),
19098 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
19099 0, 0, 0, 0),
19100 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
19101 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019102 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
19103 0, 0, 0, 0),
19104 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
19105 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019106 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
19107 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019108 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
19109 0, 0, 0, 0),
19110 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
19111 0, 0, 0, 0),
19112 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
19113 0, 0, 0, 0),
19114 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
19115 0, 0, 0, 0),
19116 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
19117 0, 0, 0, 0),
19118 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
19119 0, 0, 0, 0),
19120 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
19121 0, 0, 0, 0),
19122 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
19123 0, 0, 0, 0),
19124 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
19125 0, 0, 0, 0),
19126 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
19127 0, 0, 0, 0),
19128 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
19129 0, 0, 0, 0),
19130 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
19131 0, 0, 0, 0),
19132 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
19133 0, 0, 0, 0),
19134 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
19135 0, 0, 0, 0),
19136 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
19137 0, 0, 0, 0),
19138 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
19139 0, 0, 0, 0),
19140 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
19141 0, 0, 0, 0),
19142 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
19143 0, 0, 0, 0),
19144 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
19145 0, 0, 0, 0),
19146 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
19147 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
19148 0, 0, 0, 0),
19149 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
19150 "INT0 MI2S_RX Hostless Playback",
19151 0, 0, 0, 0),
19152 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
19153 "INT4 MI2S_RX Hostless Playback",
19154 0, 0, 0, 0),
19155 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
19156 "Primary MI2S_RX Hostless Playback",
19157 0, 0, 0, 0),
19158 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
19159 "Secondary MI2S_RX Hostless Playback",
19160 0, 0, 0, 0),
19161 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
19162 "Tertiary MI2S_RX Hostless Playback",
19163 0, 0, 0, 0),
19164 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
19165 "Quaternary MI2S_RX Hostless Playback",
19166 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019167 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
19168 "Quinary MI2S_RX Hostless Playback",
19169 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019170
19171 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
19172 0, 0, 0, 0),
19173 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
19174 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080019175 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
19176 0, 0, 0, 0),
19177 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
19178 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019179 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
19180 0, 0, 0, 0),
19181 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
19182 "INT3 MI2S_TX Hostless Capture",
19183 0, 0, 0, 0),
19184 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
19185 "Tertiary MI2S_TX Hostless Capture",
19186 0, 0, 0, 0),
19187 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
19188 "Secondary MI2S_TX Hostless Capture",
19189 0, 0, 0, 0),
19190 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
19191 "Primary MI2S_TX Hostless Capture",
19192 0, 0, 0, 0),
19193 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
19194 0, 0, 0, 0),
19195 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
19196 0, 0, 0, 0),
19197 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
19198 "Quaternary MI2S_TX Hostless Capture",
19199 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019200 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
19201 "Quinary MI2S_TX Hostless Capture",
19202 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019203
19204 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
19205 "Primary TDM0 Hostless Playback",
19206 0, 0, 0, 0),
19207 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
19208 "Primary TDM0 Hostless Capture",
19209 0, 0, 0, 0),
19210 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
19211 "Primary TDM1 Hostless Playback",
19212 0, 0, 0, 0),
19213 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
19214 "Primary TDM1 Hostless Capture",
19215 0, 0, 0, 0),
19216 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
19217 "Primary TDM2 Hostless Playback",
19218 0, 0, 0, 0),
19219 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
19220 "Primary TDM2 Hostless Capture",
19221 0, 0, 0, 0),
19222 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
19223 "Primary TDM3 Hostless Playback",
19224 0, 0, 0, 0),
19225 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
19226 "Primary TDM3 Hostless Capture",
19227 0, 0, 0, 0),
19228 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
19229 "Primary TDM4 Hostless Playback",
19230 0, 0, 0, 0),
19231 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
19232 "Primary TDM4 Hostless Capture",
19233 0, 0, 0, 0),
19234 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
19235 "Primary TDM5 Hostless Playback",
19236 0, 0, 0, 0),
19237 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
19238 "Primary TDM5 Hostless Capture",
19239 0, 0, 0, 0),
19240 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
19241 "Primary TDM6 Hostless Playback",
19242 0, 0, 0, 0),
19243 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
19244 "Primary TDM6 Hostless Capture",
19245 0, 0, 0, 0),
19246 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
19247 "Primary TDM7 Hostless Playback",
19248 0, 0, 0, 0),
19249 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
19250 "Primary TDM7 Hostless Capture",
19251 0, 0, 0, 0),
19252 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
19253 "Secondary TDM0 Hostless Playback",
19254 0, 0, 0, 0),
19255 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
19256 "Secondary TDM0 Hostless Capture",
19257 0, 0, 0, 0),
19258 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
19259 "Secondary TDM1 Hostless Playback",
19260 0, 0, 0, 0),
19261 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
19262 "Secondary TDM1 Hostless Capture",
19263 0, 0, 0, 0),
19264 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
19265 "Secondary TDM2 Hostless Playback",
19266 0, 0, 0, 0),
19267 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
19268 "Secondary TDM2 Hostless Capture",
19269 0, 0, 0, 0),
19270 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
19271 "Secondary TDM3 Hostless Playback",
19272 0, 0, 0, 0),
19273 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
19274 "Secondary TDM3 Hostless Capture",
19275 0, 0, 0, 0),
19276 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
19277 "Secondary TDM4 Hostless Playback",
19278 0, 0, 0, 0),
19279 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
19280 "Secondary TDM4 Hostless Capture",
19281 0, 0, 0, 0),
19282 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
19283 "Secondary TDM5 Hostless Playback",
19284 0, 0, 0, 0),
19285 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
19286 "Secondary TDM5 Hostless Capture",
19287 0, 0, 0, 0),
19288 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
19289 "Secondary TDM6 Hostless Playback",
19290 0, 0, 0, 0),
19291 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
19292 "Secondary TDM6 Hostless Capture",
19293 0, 0, 0, 0),
19294 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
19295 "Secondary TDM7 Hostless Playback",
19296 0, 0, 0, 0),
19297 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
19298 "Secondary TDM7 Hostless Capture",
19299 0, 0, 0, 0),
19300 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
19301 "Tertiary TDM0 Hostless Playback",
19302 0, 0, 0, 0),
19303 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
19304 "Tertiary TDM0 Hostless Capture",
19305 0, 0, 0, 0),
19306 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
19307 "Tertiary TDM1 Hostless Playback",
19308 0, 0, 0, 0),
19309 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
19310 "Tertiary TDM1 Hostless Capture",
19311 0, 0, 0, 0),
19312 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
19313 "Tertiary TDM2 Hostless Playback",
19314 0, 0, 0, 0),
19315 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
19316 "Tertiary TDM2 Hostless Capture",
19317 0, 0, 0, 0),
19318 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
19319 "Tertiary TDM3 Hostless Playback",
19320 0, 0, 0, 0),
19321 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
19322 "Tertiary TDM3 Hostless Capture",
19323 0, 0, 0, 0),
19324 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
19325 "Tertiary TDM4 Hostless Playback",
19326 0, 0, 0, 0),
19327 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
19328 "Tertiary TDM4 Hostless Capture",
19329 0, 0, 0, 0),
19330 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
19331 "Tertiary TDM5 Hostless Playback",
19332 0, 0, 0, 0),
19333 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
19334 "Tertiary TDM5 Hostless Capture",
19335 0, 0, 0, 0),
19336 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
19337 "Tertiary TDM6 Hostless Playback",
19338 0, 0, 0, 0),
19339 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
19340 "Tertiary TDM6 Hostless Capture",
19341 0, 0, 0, 0),
19342 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
19343 "Tertiary TDM7 Hostless Playback",
19344 0, 0, 0, 0),
19345 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
19346 "Tertiary TDM7 Hostless Capture",
19347 0, 0, 0, 0),
19348 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
19349 "Quaternary TDM0 Hostless Playback",
19350 0, 0, 0, 0),
19351 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
19352 "Quaternary TDM0 Hostless Capture",
19353 0, 0, 0, 0),
19354 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
19355 "Quaternary TDM1 Hostless Playback",
19356 0, 0, 0, 0),
19357 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
19358 "Quaternary TDM1 Hostless Capture",
19359 0, 0, 0, 0),
19360 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
19361 "Quaternary TDM2 Hostless Playback",
19362 0, 0, 0, 0),
19363 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
19364 "Quaternary TDM2 Hostless Capture",
19365 0, 0, 0, 0),
19366 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
19367 "Quaternary TDM3 Hostless Playback",
19368 0, 0, 0, 0),
19369 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
19370 "Quaternary TDM3 Hostless Capture",
19371 0, 0, 0, 0),
19372 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
19373 "Quaternary TDM4 Hostless Playback",
19374 0, 0, 0, 0),
19375 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
19376 "Quaternary TDM4 Hostless Capture",
19377 0, 0, 0, 0),
19378 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
19379 "Quaternary TDM5 Hostless Playback",
19380 0, 0, 0, 0),
19381 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
19382 "Quaternary TDM5 Hostless Capture",
19383 0, 0, 0, 0),
19384 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
19385 "Quaternary TDM6 Hostless Playback",
19386 0, 0, 0, 0),
19387 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
19388 "Quaternary TDM6 Hostless Capture",
19389 0, 0, 0, 0),
19390 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
19391 "Quaternary TDM7 Hostless Playback",
19392 0, 0, 0, 0),
19393 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
19394 "Quaternary TDM7 Hostless Capture",
19395 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019396 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
19397 "Quinary TDM0 Hostless Playback",
19398 0, 0, 0, 0),
19399 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
19400 "Quinary TDM0 Hostless Capture",
19401 0, 0, 0, 0),
19402 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
19403 "Quinary TDM1 Hostless Playback",
19404 0, 0, 0, 0),
19405 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
19406 "Quinary TDM1 Hostless Capture",
19407 0, 0, 0, 0),
19408 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
19409 "Quinary TDM2 Hostless Playback",
19410 0, 0, 0, 0),
19411 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
19412 "Quinary TDM2 Hostless Capture",
19413 0, 0, 0, 0),
19414 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
19415 "Quinary TDM3 Hostless Playback",
19416 0, 0, 0, 0),
19417 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
19418 "Quinary TDM3 Hostless Capture",
19419 0, 0, 0, 0),
19420 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
19421 "Quinary TDM4 Hostless Playback",
19422 0, 0, 0, 0),
19423 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
19424 "Quinary TDM4 Hostless Capture",
19425 0, 0, 0, 0),
19426 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
19427 "Quinary TDM5 Hostless Playback",
19428 0, 0, 0, 0),
19429 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
19430 "Quinary TDM5 Hostless Capture",
19431 0, 0, 0, 0),
19432 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
19433 "Quinary TDM6 Hostless Playback",
19434 0, 0, 0, 0),
19435 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
19436 "Quinary TDM6 Hostless Capture",
19437 0, 0, 0, 0),
19438 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
19439 "Quinary TDM7 Hostless Playback",
19440 0, 0, 0, 0),
19441 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
19442 "Quinary TDM7 Hostless Capture",
19443 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019444
19445 /* LSM */
19446 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
19447 0, 0, 0, 0),
19448 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
19449 0, 0, 0, 0),
19450 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
19451 0, 0, 0, 0),
19452 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
19453 0, 0, 0, 0),
19454 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
19455 0, 0, 0, 0),
19456 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
19457 0, 0, 0, 0),
19458 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
19459 0, 0, 0, 0),
19460 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
19461 0, 0, 0, 0),
19462 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
19463 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
19464 /* Backend AIF */
19465 /* Stream name equals to backend dai link stream name */
19466 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
19467 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
19468 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020019469 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
19470 0, 0, 0, 0),
19471 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
19472 0, 0, 0, 0),
19473 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
19474 0, 0, 0, 0),
19475 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
19476 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019477 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
19478 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
19479 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
19480 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
19481 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
19482 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019483 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
19484 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019485 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
19486 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
19487 0, 0, 0, 0),
19488 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
19489 0, 0, 0, 0),
19490 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
19491 0, 0, 0, 0),
19492 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
19493 "Secondary MI2S Playback SD1",
19494 0, 0, 0, 0),
19495 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
19496 0, 0, 0, 0),
19497 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
19498 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019499 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
19500 0, 0, 0, 0),
19501 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
19502 0, 0, 0, 0),
19503 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
19504 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019505 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
19506 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019507 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
19508 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019509 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
19510 0, 0, 0, 0),
19511 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
19512 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
19513 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
19514 0, 0, 0, 0),
19515 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
19516 0, 0, 0, 0),
19517 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
19518 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019519 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
19520 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019521 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
19522 0, 0, 0, 0),
19523 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
19524 0, 0, 0, 0),
19525 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
19526 0, 0, 0, 0),
19527 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
19528 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
19529 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
19530 0, 0, 0, 0),
19531 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
19532 0, 0, 0, 0),
19533 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
19534 0, 0, 0, 0),
19535 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
19536 0, 0, 0, 0),
19537 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
19538 0, 0, 0, 0),
19539 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
19540 0, 0, 0, 0),
19541 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
19542 0, 0, 0, 0),
19543 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
19544 0, 0, 0, 0),
19545 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
19546 0, 0, 0, 0),
19547 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
19548 0, 0, 0, 0),
19549 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
19550 0, 0, 0, 0),
19551 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
19552 0, 0, 0, 0),
19553 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
19554 0, 0, 0, 0),
19555 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
19556 0, 0, 0, 0),
19557 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
19558 0, 0, 0, 0),
19559 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
19560 0, 0, 0, 0),
19561 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
19562 0, 0, 0, 0),
19563 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
19564 0, 0, 0, 0),
19565 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
19566 0, 0, 0, 0),
19567 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
19568 0, 0, 0, 0),
19569 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
19570 0, 0, 0, 0),
19571 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
19572 0, 0, 0, 0),
19573 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
19574 0, 0, 0, 0),
19575 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
19576 0, 0, 0, 0),
19577 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
19578 0, 0, 0, 0),
19579 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
19580 0, 0, 0, 0),
19581 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
19582 0, 0, 0, 0),
19583 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
19584 0, 0, 0, 0),
19585 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
19586 0, 0, 0, 0),
19587 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
19588 0, 0, 0, 0),
19589 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
19590 0, 0, 0, 0),
19591 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
19592 0, 0, 0, 0),
19593 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
19594 0, 0, 0, 0),
19595 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
19596 0, 0, 0, 0),
19597 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
19598 0, 0, 0, 0),
19599 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
19600 0, 0, 0, 0),
19601 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
19602 0, 0, 0, 0),
19603 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
19604 0, 0, 0, 0),
19605 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
19606 0, 0, 0, 0),
19607 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
19608 0, 0, 0, 0),
19609 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
19610 0, 0, 0, 0),
19611 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
19612 0, 0, 0, 0),
19613 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
19614 0, 0, 0, 0),
19615 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
19616 0, 0, 0, 0),
19617 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
19618 0, 0, 0, 0),
19619 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
19620 0, 0, 0, 0),
19621 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
19622 0, 0, 0, 0),
19623 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
19624 0, 0, 0, 0),
19625 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
19626 0, 0, 0, 0),
19627 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
19628 0, 0, 0, 0),
19629 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
19630 0, 0, 0, 0),
19631 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
19632 0, 0, 0, 0),
19633 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
19634 0, 0, 0, 0),
19635 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
19636 0, 0, 0, 0),
19637 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
19638 0, 0, 0, 0),
19639 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
19640 0, 0, 0, 0),
19641 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
19642 0, 0, 0, 0),
19643 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
19644 0, 0, 0, 0),
19645 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
19646 0, 0, 0, 0),
19647 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
19648 0, 0, 0, 0),
19649 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
19650 0, 0, 0, 0),
19651 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
19652 0, 0, 0, 0),
19653 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
19654 0, 0, 0, 0),
19655 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
19656 0, 0, 0, 0),
19657 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
19658 0, 0, 0, 0),
19659 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
19660 0, 0, 0, 0),
19661 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
19662 0, 0, 0, 0),
19663 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
19664 0, 0, 0, 0),
19665 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
19666 0, 0, 0, 0),
19667 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
19668 0, 0, 0, 0),
19669 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
19670 0, 0, 0, 0),
19671 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
19672 0, 0, 0, 0),
19673 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
19674 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019675 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
19676 0, 0, 0, 0),
19677 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
19678 0, 0, 0, 0),
19679 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
19680 0, 0, 0, 0),
19681 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
19682 0, 0, 0, 0),
19683 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
19684 0, 0, 0, 0),
19685 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
19686 0, 0, 0, 0),
19687 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
19688 0, 0, 0, 0),
19689 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
19690 0, 0, 0, 0),
19691 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
19692 0, 0, 0, 0),
19693 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
19694 0, 0, 0, 0),
19695 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
19696 0, 0, 0, 0),
19697 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
19698 0, 0, 0, 0),
19699 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
19700 0, 0, 0, 0),
19701 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
19702 0, 0, 0, 0),
19703 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
19704 0, 0, 0, 0),
19705 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
19706 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019707 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
19708 0, 0, 0, 0),
19709 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
19710 0, 0, 0, 0),
19711 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
19712 0, 0, 0, 0),
19713 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
19714 0, 0, 0, 0),
19715 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
19716 0, 0, 0, 0),
19717 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
19718 0, 0, 0, 0),
19719 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
19720 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019721 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
19722 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019723 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
19724 0, 0, 0, 0),
19725 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
19726 0, 0, 0, 0),
19727 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
19728 0, 0, 0, 0),
19729 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
19730 0, 0, 0, 0),
19731 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
19732 0, 0, 0, 0),
19733 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
19734 0, 0, 0, 0),
19735 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
19736 0, 0, 0, 0),
19737 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
19738 0, 0, 0, 0),
19739 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
19740 0, 0, 0, 0),
19741 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
19742 0, 0, 0, 0),
19743 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
19744 0, 0, 0, 0),
19745 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
19746 0, 0, 0, 0),
19747 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
19748 0, 0, 0, 0),
19749 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
19750 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019751 /* incall */
19752 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
19753 0, 0, 0, 0),
19754 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
19755 0, 0, 0, 0),
19756 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
19757 0, 0, 0, 0),
19758 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
19759 0, 0, 0, 0),
19760 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
19761 0, 0, 0, 0),
19762 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
19763 0, 0, 0, 0),
19764 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
19765 0, 0, 0, 0),
19766 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
19767 0, 0, 0, 0),
19768 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
19769
19770 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
19771 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
19772 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
19773 0, 0, 0, 0),
19774 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
19775 0, 0, 0, 0),
19776 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
19777 0, 0, 0, 0),
19778 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
19779 0, 0, 0, 0),
19780 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
19781 0, 0, 0, 0),
19782 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
19783 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019784 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
19785 0, 0, 0, 0),
19786 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
19787 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019788 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
19789 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
19790 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
19791 0, 0, 0, 0),
19792 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
19793 0, 0, 0, 0),
19794 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
19795 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
19796 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
19797 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
19798 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
19799 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
19800 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
19801 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
19802 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
19803 /* In- call recording */
19804 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
19805 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053019806 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
19807 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019808 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
19809 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
19810
19811 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
19812 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019813 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
19814 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019815 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
19816 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
19817
19818 /* Switch Definitions */
19819 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
19820 &slim_fm_switch_mixer_controls),
19821 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
19822 &slim1_fm_switch_mixer_controls),
19823 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
19824 &slim3_fm_switch_mixer_controls),
19825 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
19826 &slim4_fm_switch_mixer_controls),
19827 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
19828 &slim6_fm_switch_mixer_controls),
19829 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19830 &pcm_rx_switch_mixer_controls),
19831 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19832 &int0_mi2s_rx_switch_mixer_controls),
19833 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19834 &int4_mi2s_rx_switch_mixer_controls),
19835 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19836 &pri_mi2s_rx_switch_mixer_controls),
19837 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19838 &sec_mi2s_rx_switch_mixer_controls),
19839 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19840 &tert_mi2s_rx_switch_mixer_controls),
19841 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19842 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053019843 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19844 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080019845 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
19846 &sco_slim7_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019847 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19848 &hfp_pri_aux_switch_mixer_controls),
19849 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19850 &hfp_aux_switch_mixer_controls),
19851 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
19852 &hfp_int_switch_mixer_controls),
19853 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19854 &hfp_slim7_switch_mixer_controls),
19855 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
19856 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080019857 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19858 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019859 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019860 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019861 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019862 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019863
19864 /* Mixer definitions */
19865 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19866 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
19867 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19868 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
19869 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19870 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
19871 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19872 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
19873 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19874 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
19875 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19876 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019877 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19878 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019879 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
19880 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
19881 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
19882 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019883 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
19884 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020019885 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19886 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
19887 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19888 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019889 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19890 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
19891 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19892 quaternary_mi2s_rx_mixer_controls,
19893 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
19894 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19895 tertiary_mi2s_rx_mixer_controls,
19896 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
19897 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19898 secondary_mi2s_rx_mixer_controls,
19899 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
19900 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19901 secondary_mi2s_rx2_mixer_controls,
19902 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
19903 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19904 primary_mi2s_rx_mixer_controls,
19905 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
19906 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19907 int0_mi2s_rx_mixer_controls,
19908 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
19909 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19910 int4_mi2s_rx_mixer_controls,
19911 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
19912 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19913 quinary_mi2s_rx_mixer_controls,
19914 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
19915 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19916 pri_tdm_rx_0_mixer_controls,
19917 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
19918 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19919 pri_tdm_rx_1_mixer_controls,
19920 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
19921 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19922 pri_tdm_rx_2_mixer_controls,
19923 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
19924 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19925 pri_tdm_rx_3_mixer_controls,
19926 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
19927 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19928 pri_tdm_tx_0_mixer_controls,
19929 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
19930 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19931 sec_tdm_rx_0_mixer_controls,
19932 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
19933 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19934 sec_tdm_rx_1_mixer_controls,
19935 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
19936 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19937 sec_tdm_rx_2_mixer_controls,
19938 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
19939 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19940 sec_tdm_rx_3_mixer_controls,
19941 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
19942 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19943 sec_tdm_tx_0_mixer_controls,
19944 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
19945 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19946 tert_tdm_rx_0_mixer_controls,
19947 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
19948 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19949 tert_tdm_tx_0_mixer_controls,
19950 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
19951 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19952 tert_tdm_rx_1_mixer_controls,
19953 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19954 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19955 tert_tdm_rx_2_mixer_controls,
19956 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19957 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19958 tert_tdm_rx_3_mixer_controls,
19959 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19960 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19961 tert_tdm_rx_4_mixer_controls,
19962 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19963 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19964 quat_tdm_rx_0_mixer_controls,
19965 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19966 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19967 quat_tdm_tx_0_mixer_controls,
19968 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19969 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19970 quat_tdm_rx_1_mixer_controls,
19971 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19972 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19973 quat_tdm_rx_2_mixer_controls,
19974 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19975 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19976 quat_tdm_rx_3_mixer_controls,
19977 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019978 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19979 quin_tdm_rx_0_mixer_controls,
19980 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19981 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19982 quin_tdm_tx_0_mixer_controls,
19983 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19984 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19985 quin_tdm_rx_1_mixer_controls,
19986 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19987 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19988 quin_tdm_rx_2_mixer_controls,
19989 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19990 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19991 quin_tdm_rx_3_mixer_controls,
19992 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019993 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19994 wsa_cdc_dma_rx_0_mixer_controls,
19995 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19996 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19997 wsa_cdc_dma_rx_1_mixer_controls,
19998 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019999 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
20000 rx_cdc_dma_rx_0_mixer_controls,
20001 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
20002 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
20003 rx_cdc_dma_rx_1_mixer_controls,
20004 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
20005 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
20006 rx_cdc_dma_rx_2_mixer_controls,
20007 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
20008 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
20009 rx_cdc_dma_rx_3_mixer_controls,
20010 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
20011 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
20012 rx_cdc_dma_rx_4_mixer_controls,
20013 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
20014 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
20015 rx_cdc_dma_rx_5_mixer_controls,
20016 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
20017 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
20018 rx_cdc_dma_rx_6_mixer_controls,
20019 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
20020 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
20021 rx_cdc_dma_rx_7_mixer_controls,
20022 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020023 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
20024 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
20025 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
20026 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
20027 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
20028 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
20029 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
20030 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
20031 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
20032 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
20033 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
20034 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
20035 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
20036 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
20037 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
20038 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053020039 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
20040 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053020041 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
20042 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020043 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
20044 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
20045 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
20046 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
20047 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
20048 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
20049 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
20050 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070020051 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
20052 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053020053 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
20054 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020055 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
20056 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
20057 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
20058 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020059 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20060 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
20061 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20062 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
20063 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20064 tert_auxpcm_rx_mixer_controls,
20065 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
20066 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20067 quat_auxpcm_rx_mixer_controls,
20068 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053020069 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20070 quin_auxpcm_rx_mixer_controls,
20071 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020072 /* incall */
20073 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
20074 incall_music_delivery_mixer_controls,
20075 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
20076 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
20077 incall_music2_delivery_mixer_controls,
20078 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
20079 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20080 slimbus_4_rx_mixer_controls,
20081 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
20082 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20083 slimbus_6_rx_mixer_controls,
20084 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
20085 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20086 usb_audio_rx_mixer_controls,
20087 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
20088 /* Voice Mixer */
20089 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
20090 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
20091 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
20092 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
20093 SND_SOC_NOPM, 0, 0,
20094 sec_i2s_rx_voice_mixer_controls,
20095 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
20096 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
20097 SND_SOC_NOPM, 0, 0,
20098 sec_mi2s_rx_voice_mixer_controls,
20099 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
20100 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
20101 SND_SOC_NOPM, 0, 0,
20102 slimbus_rx_voice_mixer_controls,
20103 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
20104 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
20105 SND_SOC_NOPM, 0, 0,
20106 bt_sco_rx_voice_mixer_controls,
20107 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
20108 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
20109 SND_SOC_NOPM, 0, 0,
20110 afe_pcm_rx_voice_mixer_controls,
20111 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
20112 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
20113 SND_SOC_NOPM, 0, 0,
20114 aux_pcm_rx_voice_mixer_controls,
20115 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
20116 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
20117 SND_SOC_NOPM, 0, 0,
20118 sec_aux_pcm_rx_voice_mixer_controls,
20119 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
20120 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
20121 SND_SOC_NOPM, 0, 0,
20122 tert_aux_pcm_rx_voice_mixer_controls,
20123 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
20124 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
20125 SND_SOC_NOPM, 0, 0,
20126 quat_aux_pcm_rx_voice_mixer_controls,
20127 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053020128 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
20129 SND_SOC_NOPM, 0, 0,
20130 quin_aux_pcm_rx_voice_mixer_controls,
20131 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020132 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
20133 SND_SOC_NOPM, 0, 0,
20134 hdmi_rx_voice_mixer_controls,
20135 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
20136 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
20137 SND_SOC_NOPM, 0, 0,
20138 mi2s_rx_voice_mixer_controls,
20139 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
20140 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
20141 SND_SOC_NOPM, 0, 0,
20142 pri_mi2s_rx_voice_mixer_controls,
20143 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
20144 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
20145 SND_SOC_NOPM, 0, 0,
20146 int0_mi2s_rx_voice_mixer_controls,
20147 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
20148 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
20149 SND_SOC_NOPM, 0, 0,
20150 int4_mi2s_rx_voice_mixer_controls,
20151 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
20152 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
20153 SND_SOC_NOPM, 0, 0,
20154 tert_mi2s_rx_voice_mixer_controls,
20155 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
20156 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
20157 SND_SOC_NOPM, 0, 0,
20158 quat_mi2s_rx_voice_mixer_controls,
20159 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
20160 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
20161 SND_SOC_NOPM, 0, 0,
20162 quin_mi2s_rx_voice_mixer_controls,
20163 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053020164 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
20165 SND_SOC_NOPM, 0, 0,
20166 pri_tdm_rx_0_voice_mixer_controls,
20167 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
20168 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
20169 SND_SOC_NOPM, 0, 0,
20170 pri_tdm_rx_1_voice_mixer_controls,
20171 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
20172 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
20173 SND_SOC_NOPM, 0, 0,
20174 pri_tdm_rx_2_voice_mixer_controls,
20175 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
20176 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
20177 SND_SOC_NOPM, 0, 0,
20178 pri_tdm_rx_3_voice_mixer_controls,
20179 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020180 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
20181 SND_SOC_NOPM, 0, 0,
20182 quat_tdm_rx_2_voice_mixer_controls,
20183 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053020184 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
20185 SND_SOC_NOPM, 0, 0,
20186 wsa_cdc_dma_rx_0_voice_mixer_controls,
20187 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
20188 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
20189 SND_SOC_NOPM, 0, 0,
20190 rx_cdc_dma_rx_0_voice_mixer_controls,
20191 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020192 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
20193 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
20194 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020195 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
20196 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
20197 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
20198 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
20199 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
20200 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
20201 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20202 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
20203 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20204 int_bt_a2dp_rx_mixer_controls,
20205 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
20206 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20207 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
20208 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20209 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
20210 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
20211 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
20212 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
20213 tx_voice2_stub_mixer_controls,
20214 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
20215 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
20216 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
20217 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
20218 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
20219 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
20220 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
20221 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
20222 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
20223 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
20224 SND_SOC_NOPM, 0, 0,
20225 slimbus_6_rx_voice_mixer_controls,
20226 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
20227 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
20228 slimbus_7_rx_voice_mixer_controls,
20229 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
20230 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
20231 slimbus_8_rx_voice_mixer_controls,
20232 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
20233 /* port mixer */
20234 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
20235 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
20236 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
20237 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
20238 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
20239 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
20240 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
20241 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
20242 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
20243 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
20244 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
20245 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
20246 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
20247 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
20248 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053020249 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
20250 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
20251 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020252 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20253 sbus_1_rx_port_mixer_controls,
20254 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
20255 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20256 bt_sco_rx_port_mixer_controls,
20257 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
20258 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
20259 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
20260 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
20261 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
20262 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
20263 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
20264 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
20265 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
20266 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070020267 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070020268 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
20269 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020270 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
20271 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
20272 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
20273 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
20274 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
20275 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
20276 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
20277 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
20278 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
20279 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20280 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
20281 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20282 primary_mi2s_rx_port_mixer_controls,
20283 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
20284 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20285 sec_mi2s_rx_port_mixer_controls,
20286 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
20287 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20288 tert_mi2s_rx_port_mixer_controls,
20289 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
20290 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20291 quat_mi2s_rx_port_mixer_controls,
20292 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053020293 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20294 quin_mi2s_rx_port_mixer_controls,
20295 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020296 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20297 pri_tdm_rx_0_port_mixer_controls,
20298 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
20299 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
20300 pri_tdm_rx_1_port_mixer_controls,
20301 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
20302 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
20303 pri_tdm_rx_2_port_mixer_controls,
20304 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
20305 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20306 pri_tdm_rx_3_port_mixer_controls,
20307 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
20308 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20309 sec_tdm_rx_0_port_mixer_controls,
20310 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
20311 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
20312 sec_tdm_rx_1_port_mixer_controls,
20313 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
20314 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
20315 sec_tdm_rx_2_port_mixer_controls,
20316 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
20317 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20318 sec_tdm_rx_3_port_mixer_controls,
20319 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070020320 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
20321 sec_tdm_rx_7_port_mixer_controls,
20322 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020323 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20324 tert_tdm_rx_0_port_mixer_controls,
20325 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
20326 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
20327 tert_tdm_rx_1_port_mixer_controls,
20328 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
20329 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
20330 tert_tdm_rx_2_port_mixer_controls,
20331 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
20332 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20333 tert_tdm_rx_3_port_mixer_controls,
20334 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
20335 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20336 quat_tdm_rx_0_port_mixer_controls,
20337 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
20338 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
20339 quat_tdm_rx_1_port_mixer_controls,
20340 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
20341 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
20342 quat_tdm_rx_2_port_mixer_controls,
20343 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
20344 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20345 quat_tdm_rx_3_port_mixer_controls,
20346 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050020347 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
20348 quat_tdm_rx_7_port_mixer_controls,
20349 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053020350 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20351 quin_tdm_rx_0_port_mixer_controls,
20352 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
20353 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
20354 quin_tdm_rx_1_port_mixer_controls,
20355 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
20356 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
20357 quin_tdm_rx_2_port_mixer_controls,
20358 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
20359 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20360 quin_tdm_rx_3_port_mixer_controls,
20361 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020362 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20363 int0_mi2s_rx_port_mixer_controls,
20364 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
20365 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20366 int4_mi2s_rx_port_mixer_controls,
20367 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053020368 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20369 wsa_cdc_dma_rx_0_port_mixer_controls,
20370 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
20371 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20372 rx_cdc_dma_rx_0_port_mixer_controls,
20373 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020374 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
20375 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
20376 ARRAY_SIZE(tx_qchat_mixer_controls)),
20377 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
20378 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
20379 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
20380 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
20381 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
20382 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020383 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
20384 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
20385 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070020386 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
20387 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
20388 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020389 /* lsm mixer definitions */
20390 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
20391 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
20392 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
20393 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
20394 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
20395 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
20396 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
20397 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
20398 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
20399 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
20400 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
20401 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
20402 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
20403 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
20404 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
20405 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
20406 /* Virtual Pins to force backends ON atm */
20407 SND_SOC_DAPM_OUTPUT("BE_OUT"),
20408 SND_SOC_DAPM_INPUT("BE_IN"),
20409
20410 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
20411 &slim0_rx_vi_fb_lch_mux),
20412 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
20413 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020414 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
20415 &wsa_rx_0_vi_fb_lch_mux),
20416 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
20417 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020418 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
20419 &mi2s_rx_vi_fb_mux),
20420 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
20421 &int4_mi2s_rx_vi_fb_mono_ch_mux),
20422 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
20423 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
20424
20425 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
20426 &voc_ext_ec_mux),
20427 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
20428 &ext_ec_ref_mux_ul1),
20429 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
20430 &ext_ec_ref_mux_ul2),
20431 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
20432 &ext_ec_ref_mux_ul3),
20433 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
20434 &ext_ec_ref_mux_ul4),
20435 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
20436 &ext_ec_ref_mux_ul5),
20437 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
20438 &ext_ec_ref_mux_ul6),
20439 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
20440 &ext_ec_ref_mux_ul8),
20441 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
20442 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053020443 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
20444 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053020445 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
20446 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020447 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
20448 &ext_ec_ref_mux_ul17),
20449 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
20450 &ext_ec_ref_mux_ul18),
20451 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
20452 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080020453 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
20454 &ext_ec_ref_mux_ul28),
20455 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
20456 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020457};
20458
20459static const struct snd_soc_dapm_route intercon[] = {
20460 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20461 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20462 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20463 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20464 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20465 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20466 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20467 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20468 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20469 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20470 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20471 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20472 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20473 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20474 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20475 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020476 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020477 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
20478
20479 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20480 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20481 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20482 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20483 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20484 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20485 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20486 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20487 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20488 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20489 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20490 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20491 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20492 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20493 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20494 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020495 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020496 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
20497
20498 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20499 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20500 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20501 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20502 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20503 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20504 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20505 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20506 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20507 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20508 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20509 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20510 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20511 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20512 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20513 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020514 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020515 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
20516
20517 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20518 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20519 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20520 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20521 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20522 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20523 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20524 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20525 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20526 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20527 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20528 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20529 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20530 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20531 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20532 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020533 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020534 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
20535
20536 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20537 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20538 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20539 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20540 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20541 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20542 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20543 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20544 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20545 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20546 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20547 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20548 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20549 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20550 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20551 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020552 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020553 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
20554
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020555 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20556 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20557 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20558 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20559 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20560 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20561 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20562 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20563 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20564 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20565 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20566 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20567 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20568 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20569 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20570 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020571 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020572 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
20573
20574 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20575 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20576 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20577 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20578 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20579 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20580 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20581 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20582 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20583 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20584 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20585 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20586 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20587 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20588 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20589 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020590 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020591 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
20592
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020593 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20594 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20595 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20596 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20597 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20598 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20599 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20600 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20601 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20602 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20603 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20604 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20605 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20606 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20607 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20608 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020609 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020610 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
20611
20612 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20613 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20614 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20615 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20616 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20617 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20618 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20619 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20620 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20621 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20622 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20623 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20624 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20625 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20626 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20627 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020628 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020629 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
20630
20631 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20632 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20633 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20634 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20635 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20636 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20637 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20638 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20639 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20640 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20641 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20642 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20643 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20644 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20645 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20646 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020647 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020648 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
20649
20650 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20651 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20652 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20653 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20654 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20655 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20656 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20657 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20658 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20659 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20660 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20661 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20662 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20663 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20664 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20665 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020666 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020667 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
20668
20669 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20670 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20671 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20672 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20673 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20674 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20675 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20676 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20677 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20678 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20679 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20680 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20681 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20682 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20683 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20684 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020685 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020686 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
20687
20688 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
20689 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
20690 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
20691 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
20692 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
20693 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
20694 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
20695 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
20696 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
20697 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
20698 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
20699 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
20700 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
20701 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
20702 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
20703 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020704 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020705 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
20706
20707 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
20708 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
20709 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
20710 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
20711 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
20712 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
20713 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
20714 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
20715 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
20716 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
20717 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
20718 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
20719 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
20720 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
20721 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
20722 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020723 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020724 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
20725
20726 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
20727 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
20728 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
20729 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
20730 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
20731 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
20732 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
20733 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
20734 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
20735 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
20736 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
20737 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
20738 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
20739 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
20740 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
20741 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020742 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020743 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
20744
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020745 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
20746 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
20747 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
20748 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
20749 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
20750 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
20751 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
20752 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
20753 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
20754 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
20755 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
20756 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
20757 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
20758 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
20759 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
20760 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020761 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020762 {"HDMI", NULL, "HDMI Mixer"},
20763
20764 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
20765 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
20766 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
20767 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
20768 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
20769 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
20770 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
20771 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
20772 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
20773 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
20774 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
20775 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
20776 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
20777 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
20778 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
20779 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020780 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020781 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
20782
Karthikeyan Mani57550082018-05-03 18:43:58 -070020783 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
20784 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
20785 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
20786 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
20787 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
20788 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
20789 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
20790 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
20791 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
20792 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
20793 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
20794 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
20795 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
20796 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
20797 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
20798 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020799 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070020800 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
20801
Ralf Herzc8701f72018-06-20 11:37:35 +020020802 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20803 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20804 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20805 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20806 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20807 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20808 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20809 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20810 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20811 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20812 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20813 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20814 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20815 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20816 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20817 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020818 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020819 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
20820
20821 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20822 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20823 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20824 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20825 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20826 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20827 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20828 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20829 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20830 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20831 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20832 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20833 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20834 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20835 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20836 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020837 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020838 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020839
20840 /* incall */
20841 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
20842 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
20843 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
20844 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
20845 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
20846 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20847 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20848 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20849 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20850 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
20851 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20852 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20853 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20854 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20855 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
20856
20857 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20858 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20859 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20860 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20861 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20862 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20863 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20864 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20865 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20866 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20867 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20868 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20869 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20870 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20871 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20872 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020873 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020874 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
20875
20876 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20877 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20878 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20879 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20880 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20881 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20882 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20883 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20884 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20885 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20886 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20887 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20888 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20889 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20890 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20891 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020892 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020893 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
20894
Surendar Karka3ef3d812018-09-28 18:52:35 +053020895 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20896 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20897 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20898 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20899 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20900 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20901 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20902 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20903 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20904 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20905 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20906 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20907 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20908 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20909 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20910 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20911 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
20912 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
20913
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020914 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20915 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20916 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20917 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20918 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20919 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20920 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20921 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20922 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20923 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20924 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20925 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20926 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20927 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20928 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20929 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020930 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020931 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
20932
20933 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20934 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20935 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20936 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20937 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20938 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20939 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
20940 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20941 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20942 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020943 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020944 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20945 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020946 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020947 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020948 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020949 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020950 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020951 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020952 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020953 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020954 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020955 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020956 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020957 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020958 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020959 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020960 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020961 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20962 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20963 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20964 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20965 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020966 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20967 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020968 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020969 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020970 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20971 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20972 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020973 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20974 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20975 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20976 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20977 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20978 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020979 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020980 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20981 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20982 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020983 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20984 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020985 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020986 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020987 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020988 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020989 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020990 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020991 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020992 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20993 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020994 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020995 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020996 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020997 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020998 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20999 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21000 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021001 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010021002 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
21003 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
21004 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021005
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021006 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21007 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21008 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21009 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21010 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21011 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21012 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21013 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21014 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21015 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21016 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21017 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21018 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21019 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21020 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21021 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021022 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021023 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
21024
21025 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21026 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21027 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21028 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21029 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21030 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21031 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21032 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21033 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21034 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21035 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21036 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21037 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21038 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21039 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021040 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021041 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
21042
21043 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21044 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21045 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21046 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21047 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21048 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21049 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21050 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21051 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21052 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21053 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21054 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21055 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21056 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021057 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021058 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
21059
21060 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21061 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21062 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21063 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21064 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21065 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21066 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21067 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21068 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21069 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21070 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21071 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21072 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21073 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021074 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021075 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
21076
21077 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21078 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
21079
21080 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21081 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21082
21083 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21084 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21085 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21086 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21087 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21088 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21089 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21090 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21091 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21092 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21093 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21094 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21095 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21096 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21097 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021098 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021099 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
21100
21101 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21102 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21103 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21104 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21105 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21106 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21107 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21108 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21109 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21110 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21111 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21112 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21113 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21114 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21115 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21116 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
21117
21118 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21119 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21120 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21121 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21122 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21123 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21124 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21125 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21126 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21127 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21128 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21129 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21130 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21131 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21132 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21133 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
21134
21135 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21136 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21137 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21138 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21139 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21140 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21141 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21142 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21143 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21144 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21145 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21146 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21147 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21148 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21149 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21150 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21151 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21152 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
21153
21154 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21155 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21156 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21157 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21158 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21159 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21160 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21161 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21162 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21163 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21164 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21165 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21166 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21167 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21168 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21169 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021170 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021171 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
21172
21173 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21174 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21175 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21176 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21177 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21178 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21179 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21180 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21181 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21182 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21183 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21184 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21185 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21186 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21187 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21188 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021189 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021190 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
21191
21192 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21193 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21194 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21195 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21196 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21197 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21198 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21199 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21200 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21201 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21202 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21203 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21204 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21205 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21206 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21207 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021208 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021209 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
21210
21211 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21212 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21213 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21214 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21215 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21216 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21217 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21218 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21219 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21220 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21221 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21222 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21223 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21224 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21225 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21226 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021227 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021228 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
21229
21230 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21231 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21232 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21233 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21234 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21235 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21236 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21237 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21238 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21239 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21240 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21241 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21242 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21243 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21244 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21245 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21246 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
21247
21248 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21249 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21250 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21251 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21252 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21253 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21254 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21255 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21256 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21257 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21258 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21259 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21260 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21261 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21262 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21263 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021264 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021265 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
21266
21267 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21268 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21269 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21270 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21271 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21272 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21273 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21274 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21275 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21276 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21277 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21278 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21279 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21280 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21281 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21282 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021283 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021284 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
21285
21286 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21287 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21288 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21289 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21290 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21291 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21292 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21293 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21294 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21295 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21296 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21297 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21298 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21299 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21300 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21301 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021302 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021303 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
21304
21305 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21306 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21307 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21308 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21309 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21310 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21311 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21312 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21313 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21314 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21315 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21316 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21317 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21318 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21319 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21320 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021321 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021322 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
21323
21324 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21325 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21326 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21327 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21328 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21329 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21330 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21331 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21332 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21333 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21334 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21335 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21336 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21337 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21338 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21339 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21340 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
21341
21342 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21343 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21344 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21345 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21346 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21347 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21348 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21349 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21350 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21351 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21352 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21353 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21354 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21355 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21356 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21357 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021358 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021359 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
21360
21361 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21362 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21363 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21364 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21365 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21366 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21367 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21368 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21369 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21370 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21371 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21372 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21373 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21374 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21375 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21376 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21377 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
21378
21379 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21380 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21381 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21382 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21383 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21384 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21385 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21386 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21387 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21388 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21389 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21390 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21391 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21392 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21393 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21394 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021395 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021396 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
21397
21398 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21399 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21400 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21401 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21402 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21403 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21404 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21405 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21406 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21407 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21408 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21409 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21410 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21411 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21412 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21413 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021414 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021415 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
21416
21417 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21418 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21419 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21420 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21421 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21422 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21423 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21424 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21425 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21426 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21427 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21428 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21429 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21430 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21431 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21432 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021433 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021434 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
21435
21436 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
21437 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
21438 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
21439 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
21440 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
21441 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
21442 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
21443 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
21444 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
21445 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
21446 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
21447 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
21448 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
21449 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
21450 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
21451 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021452 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021453 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
21454
21455 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21456 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21457 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21458 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21459 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21460 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21461 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21462 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21463 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21464 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21465 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21466 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21467 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21468 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21469 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21470 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21471 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021472 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021473 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
21474
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021475 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21476 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21477 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21478 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21479 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21480 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21481 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21482 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21483 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21484 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21485 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21486 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21487 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21488 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21489 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21490 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21491 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
21492
21493 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21494 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21495 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21496 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21497 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21498 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21499 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21500 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21501 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21502 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21503 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21504 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21505 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21506 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21507 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21508 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21509 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021510 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021511 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
21512
21513 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21514 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21515 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21516 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21517 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21518 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21519 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21520 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21521 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21522 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21523 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21524 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21525 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21526 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21527 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21528 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21529 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021530 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021531 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
21532
21533 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21534 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21535 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21536 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21537 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21538 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21539 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21540 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21541 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21542 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21543 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21544 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21545 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21546 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21547 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21548 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21549 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021550 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021551 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
21552
Rohit Kumara5077932017-09-10 22:05:05 +053021553 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21554 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21555 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21556 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21557 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21558 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21559 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21560 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21561 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21562 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21563 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21564 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21565 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21566 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21567 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21568 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21569 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021570 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021571 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
21572
21573 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21574 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21575 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21576 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21577 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21578 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21579 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21580 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21581 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21582 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21583 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21584 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21585 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21586 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21587 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21588 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21589 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
21590
21591 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21592 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21593 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21594 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21595 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21596 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21597 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21598 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21599 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21600 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21601 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21602 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21603 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21604 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21605 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21606 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21607 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021608 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021609 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
21610
21611 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21612 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21613 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21614 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21615 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21616 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21617 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21618 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21619 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21620 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21621 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21622 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21623 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21624 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21625 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21626 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21627 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021628 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021629 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
21630
21631 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21632 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21633 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21634 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21635 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21636 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21637 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21638 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21639 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21640 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21641 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21642 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21643 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21644 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21645 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21646 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21647 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021648 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021649 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
21650
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021651 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
21652 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
21653 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
21654 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
21655 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021656 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021657 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021658 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21659 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21660 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21661 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21662 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21663 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21664 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21665 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21666 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21667 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21668 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21669 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021670 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021671 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21672 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21673 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021674 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021675 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21676 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
21677 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021678 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021679 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21680 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021681 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21682 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
21683 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021684 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021685 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21686 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
21687 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021688 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021689 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021690 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
21691 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
21692 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021693 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21694 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21695 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21696 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21697 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21698 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21699 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21700 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021701 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021702 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21703 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21704 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021705 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021706 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21707 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21708 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021709 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021710 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021711 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21712 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21713 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021714 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021715 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021716 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21717 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21718 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21719 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21720 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021721 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21722 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21723 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21724 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021725 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021726
21727 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21728 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21729 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21730 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21731 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21732 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21733 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21734 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21735 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21736 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21737 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21738 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21739 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21740 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21741 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21742 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021743 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021744 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21745 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21746 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21747 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021748 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21749 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21750 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21751 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21752 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021753 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021754 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21755 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21756 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21757 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21758 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21759 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021760 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21761 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021762
21763 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21764 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21765 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21766 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21767 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21768 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21769 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21770 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21771 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21772 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21773 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21774 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21775 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21776 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21777 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21778 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021779 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021780 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21781 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21782 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21783 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021784 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21785 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21786 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21787 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21788 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021789 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021790 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21791 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21792 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21793 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21794 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21795 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021796 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21797 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021798
21799 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21800 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21801 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21802 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21803 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21804 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21805 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21806 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21807 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21808 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21809 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21810 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21811 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21812 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21813 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21814 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021815 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021816 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21817 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21818 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21819 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021820 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21821 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21822 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21823 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21824 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021825 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021826 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21827 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21828 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21829 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21830 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21831 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021832 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21833 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021834
21835 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21836 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21837 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21838 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21839 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21840 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21841 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21842 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21843 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21844 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21845 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21846 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21847 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21848 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21849 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21850 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021851 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021852 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21853 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21854 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21855 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021856 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21857 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21858 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21859 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21860 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021861 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021862 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21863 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21864 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21865 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21866 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21867 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021868 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21869 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021870
21871 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21872 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21873 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21874 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21875 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21876 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21877 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21878 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21879 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21880 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21881 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21882 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21883 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21884 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21885 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21886 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021887 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021888 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21889 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21890 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21891 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021892 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21893 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21894 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21895 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21896 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021897 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021898 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21899 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21900 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21901 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21902 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21903 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021904 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21905 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021906
21907 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21908 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21909 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21910 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21911 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21912 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21913 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21914 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21915 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21916 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21917 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21918 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21919 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21920 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21921 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21922 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021923 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021924 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21925 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21926 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21927 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021928 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21929 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21930 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21931 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21932 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021933 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021934 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21935 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21936 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21937 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21938 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21939 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021940 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21941 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021942
21943 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21944 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21945 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21946 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21947 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21948 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21949 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21950 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21951 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21952 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21953 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21954 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21955 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21956 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21957 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21958 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021959 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021960 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21961 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21962 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21963 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021964 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21965 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21966 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21967 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21968 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021969 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021970 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21971 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21972 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21973 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21974 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21975 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021976 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21977 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021978
Samyak Jain810e42a2019-01-07 17:53:34 +053021979 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021980 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21981 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21982 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21983 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21984 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21985 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21986 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21987 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021988 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21989 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21990 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21991 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021992 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21993 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21994 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21995 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21996 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021997 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021998 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21999 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22000 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22001 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22002 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22003 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022004 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
22005 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022006 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022007
Laxminath Kasam38070be2017-08-17 18:21:59 +053022008 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22009 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22010 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22011 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22012 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22013 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22014 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22015 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022016 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22017 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22018 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22019 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22020 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22021 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022022 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022023
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022024 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22025 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22026 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22027 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022028 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022029 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22030 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22031 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22032 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22033 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22034 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22035 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22036 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22037 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22038 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22039 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22040 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22041 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22042 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22043 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22044 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022045 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22046 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22047 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22048 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022049 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22050 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
22051 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
22052 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22053 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022054 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022055 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22056 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22057 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22058 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22059 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22060 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022061 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
22062 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022063 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022064
Derek Chen07c6d1c2018-07-05 10:39:25 -070022065 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22066 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22067 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22068 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22069 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22070 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22071 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22072 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22073 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22074 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22075 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22076 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22077 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22078 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22079 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22080 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22081 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22082 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22083 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22084 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22085 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22086 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053022087 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22088 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
22089 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
22090 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22091 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022092 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053022093 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22094 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22095 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22096 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22097 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22098 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
22099 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
22100 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022101 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070022102
Surendar Karkac1cde372018-08-14 18:56:24 +053022103 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053022104 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022105 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
22106 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022107 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022108 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22109 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22110 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22111 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22112 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
22113 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
22114 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022115 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022116
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022117 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22118 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22119 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22120 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22121 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22122 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022123 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022124
Asish Bhattacharya34504582017-08-08 12:55:01 +053022125 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22126 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22127 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22128 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22129 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22130 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22131 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22132 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22133 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22134 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22135 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22136 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22137 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22138 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22139 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22140 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22141 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022142 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22143 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
22144 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
22145 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22146 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022147 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022148 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22149 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22150 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22151 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22152 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22153 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022154 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
22155 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022156 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022157
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022158 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22159 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22160 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22161 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22162 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22163 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022164 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022165
22166 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22167 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22168 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22169 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22170 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22171 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022172 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022173
22174 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22175 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22176 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22177 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22178 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22179 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022180 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022181
22182 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22183 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22184 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22185 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22186 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22187 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022188 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022189
22190 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22191 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22192 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22193 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22194 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22195 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022196 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022197
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022198 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22199 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22200 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22201 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22202 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22203 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22204 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22205 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22206 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22207 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22208 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22209 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22210 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22211 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22212 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22213 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22214 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
22215 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
22216
22217 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22218 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22219 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22220 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22221 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22222 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22223 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22224 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22225 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22226 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22227 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22228 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22229 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22230 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22231 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22232 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22233 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
22234 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
22235
22236 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22237 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22238 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22239 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22240 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22241 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22242 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22243 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22244 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22245 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22246 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22247 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22248 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22249 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22250 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22251 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22252 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
22253
22254 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22255 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22256 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22257 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22258 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22259 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22260 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22261 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22262 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22263 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22264 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22265 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22266 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22267 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22268 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22269 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22270 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
22271
22272 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22273 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22274 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022275 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022276 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22277 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22278 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022279 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22280 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022281 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22282 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022283 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022284 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22285 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022286 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022287 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22288 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22289 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022290 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22291 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022292 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22293 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22294 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22295
22296 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
22297 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
22298 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022299 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022300 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
22301 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
22302 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022303 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
22304 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022305 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
22306 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022307 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022308 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
22309 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22310 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
22311 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
22312 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
22313 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
22314 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
22315 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
22316 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022317 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022318 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022319 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
22320 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
22321 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
22322 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070022323 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022324 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022325 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
22326 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022327
22328 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22329 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22330 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22331 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22332 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22333 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22334 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22335 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22336 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22337 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22338 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22339 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22340 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22341 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22342 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22343 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070022344 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022345 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
22346
22347 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22348 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22349 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22350 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22351 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22352 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22353 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22354 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22355 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22356 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22357 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22358 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22359 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22360 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22361 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22362 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070022363 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022364 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
22365
22366 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22367 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22368 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22369 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22370 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22371 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22372 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22373 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22374 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22375 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22376 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22377 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22378 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22379 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22380 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22381 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22382 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
22383
22384 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22385 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22386 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22387 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22388 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22389 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22390 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22391 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22392 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22393 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22394 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22395 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22396 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22397 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22398 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22399 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22400 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
22401
Rohit Kumara5077932017-09-10 22:05:05 +053022402 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22403 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22404 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22405 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22406 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22407 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22408 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22409 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22410 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22411 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22412 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22413 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22414 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22415 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22416 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22417 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22418 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
22419
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022420 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
22421 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22422 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22423 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22424 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22425 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
22426
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022427 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
22428 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22429 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22430 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
22431
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022432 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070022433 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22434 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022435 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22436 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22437 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22438 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22439 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
22440
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022441 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
22442 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022443 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22444 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22445 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22446 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
22447
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022448 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
22449 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022450 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22451 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22452 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22453 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
22454
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022455 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22456 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022457 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22458 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22459 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22460 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
22461
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022462 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
22463 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022464 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22465 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22466 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22467 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
22468
Karthikeyan Mani57550082018-05-03 18:43:58 -070022469 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
22470 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22471 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
22472 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22473 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22474 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
22475
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022476 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22477 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22478 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22479 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22480 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022481 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
22482
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022483 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22484 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22485 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22486 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22487 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22488 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
22489
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022490 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22491 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022492 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22493 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22494 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22495 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
22496
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022497 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22498 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022499 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22500 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22501 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22502 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
22503
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022504 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22505 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022506 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22507 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22508 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22509 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
22510
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022511 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22512 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022513 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22514 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22515 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22516 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
22517
Rohit Kumara5077932017-09-10 22:05:05 +053022518 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22519 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022520 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22521 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22522 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22523 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
22524
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022525 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
22526 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22527 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22528 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22529 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22530 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
22531 {"HDMI", NULL, "HDMI_DL_HL"},
22532
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022533 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070022534 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22535 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022536 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22537 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22538 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080022539 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022540 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
22541
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022542 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070022543 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22544 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022545 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22546 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22547 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22548 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22549 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
22550
22551 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22552 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22553 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22554 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22555 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22556 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
22557
22558 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22559 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22560 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22561 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22562 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22563 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
22564
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022565 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070022566 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22567 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022568 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22569 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22570 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22571 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22572 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
22573
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022574 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070022575 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22576 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022577 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22578 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22579 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22580 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
22581
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022582 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070022583 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22584 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022585 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22586 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22587 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22588 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
22589
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053022590 {"PRI_TDM_RX_0_Voice Mixer", "CSVoice", "CS-VOICE_DL1"},
22591 {"PRI_TDM_RX_0_Voice Mixer", "Voice2", "VOICE2_DL"},
22592 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
22593 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE", "VoLTE_DL"},
22594 {"PRI_TDM_RX_0_Voice Mixer", "VoWLAN", "VoWLAN_DL"},
22595 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
22596 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22597 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
22598 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
22599 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22600 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22601 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22602 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
22603
22604 {"PRI_TDM_RX_1_Voice Mixer", "CSVoice", "CS-VOICE_DL1"},
22605 {"PRI_TDM_RX_1_Voice Mixer", "Voice2", "VOICE2_DL"},
22606 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
22607 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE", "VoLTE_DL"},
22608 {"PRI_TDM_RX_1_Voice Mixer", "VoWLAN", "VoWLAN_DL"},
22609 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
22610 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22611 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
22612 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
22613 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22614 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22615 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22616 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
22617
22618 {"PRI_TDM_RX_2_Voice Mixer", "CSVoice", "CS-VOICE_DL1"},
22619 {"PRI_TDM_RX_2_Voice Mixer", "Voice2", "VOICE2_DL"},
22620 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
22621 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE", "VoLTE_DL"},
22622 {"PRI_TDM_RX_2_Voice Mixer", "VoWLAN", "VoWLAN_DL"},
22623 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
22624 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22625 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
22626 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
22627 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22628 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22629 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22630 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
22631
22632 {"PRI_TDM_RX_3_Voice Mixer", "CSVoice", "CS-VOICE_DL1"},
22633 {"PRI_TDM_RX_3_Voice Mixer", "Voice2", "VOICE2_DL"},
22634 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
22635 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE", "VoLTE_DL"},
22636 {"PRI_TDM_RX_3_Voice Mixer", "VoWLAN", "VoWLAN_DL"},
22637 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
22638 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22639 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
22640 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
22641 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22642 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22643 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22644 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
22645
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022646 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22647 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
22648
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022649 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22650 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22651 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
22652
22653 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22654 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22655 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
22656
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022657 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22658 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22659 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22660 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022661 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022662 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070022663 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022664 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022665 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
22666 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
22667
22668 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22669 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22670 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22671 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22672 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22673 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22674 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22675 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22676 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22677 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022678 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22679 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022680
22681 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22682 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22683 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22684 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22685
22686 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22687 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22688 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22689 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22690
22691 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22692 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22693 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22694 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22695
22696 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22697 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22698 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22699 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22700
22701 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22702 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22703 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22704 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22705
22706 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22707 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22708 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22709 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22710
22711 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22712 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22713 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22714 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22715
Laxminath Kasam38070be2017-08-17 18:21:59 +053022716 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22717 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22718 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22719 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22720 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22721 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22722 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22723 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22724 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22725 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022726 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22727 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070022728
22729 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22730 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22731 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22732 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22733
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022734 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22735 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22736 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22737 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22738
22739 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22740 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22741 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22742 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22743
22744 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22745 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22746 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22747 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22748
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022749 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22750 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22751 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22752 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22753
22754 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22755 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22756 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22757 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080022758
22759 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22760 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22761 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22762 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22763 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22764 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22765 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22766 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22767
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022768 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
22769 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
22770 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
22771 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
22772 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
22773 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
22774 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
22775 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022776 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022777 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022778 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
22779 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
22780 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022781 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
22782 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022783
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053022784 {"Voice_Tx Mixer", "PRI_TX_Voice", "PRI_I2S_TX"},
22785 {"Voice_Tx Mixer", "PRI_MI2S_TX_Voice", "PRI_MI2S_TX"},
22786 {"Voice_Tx Mixer", "MI2S_TX_Voice", "MI2S_TX"},
22787 {"Voice_Tx Mixer", "TERT_MI2S_TX_Voice", "TERT_MI2S_TX"},
22788 {"Voice_Tx Mixer", "SLIM_0_TX_Voice", "SLIMBUS_0_TX"},
22789 {"Voice_Tx Mixer", "INTERNAL_BT_SCO_TX_Voice", "INT_BT_SCO_TX"},
22790 {"Voice_Tx Mixer", "AFE_PCM_TX_Voice", "PCM_TX"},
22791 {"Voice_Tx Mixer", "AUX_PCM_TX_Voice", "AUX_PCM_TX"},
22792 {"Voice_Tx Mixer", "SEC_AUX_PCM_TX_Voice", "SEC_AUX_PCM_TX"},
22793 {"Voice_Tx Mixer", "SEC_MI2S_TX_Voice", "SEC_MI2S_TX"},
22794 {"Voice_Tx Mixer", "PRI_TDM_TX_3_Voice", "PRI_TDM_TX_3"},
22795 {"CS-VOICE_UL1", NULL, "Voice_Tx Mixer"},
22796
22797 {"Voice2_Tx Mixer", "PRI_TX_Voice2", "PRI_I2S_TX"},
22798 {"Voice2_Tx Mixer", "PRI_MI2S_TX_Voice2", "PRI_MI2S_TX"},
22799 {"Voice2_Tx Mixer", "MI2S_TX_Voice2", "MI2S_TX"},
22800 {"Voice2_Tx Mixer", "TERT_MI2S_TX_Voice2", "TERT_MI2S_TX"},
22801 {"Voice2_Tx Mixer", "SLIM_0_TX_Voice2", "SLIMBUS_0_TX"},
22802 {"Voice2_Tx Mixer", "INTERNAL_BT_SCO_TX_Voice2", "INT_BT_SCO_TX"},
22803 {"Voice2_Tx Mixer", "AFE_PCM_TX_Voice2", "PCM_TX"},
22804 {"Voice2_Tx Mixer", "AUX_PCM_TX_Voice2", "AUX_PCM_TX"},
22805 {"Voice2_Tx Mixer", "SEC_AUX_PCM_TX_Voice2", "SEC_AUX_PCM_TX"},
22806 {"Voice2_Tx Mixer", "PRI_TDM_TX_3_Voice2", "PRI_TDM_TX_3"},
22807 {"VOICE2_UL", NULL, "Voice2_Tx Mixer"},
22808
22809 {"VoLTE_Tx Mixer", "PRI_TX_VoLTE", "PRI_I2S_TX"},
22810 {"VoLTE_Tx Mixer", "SLIM_0_TX_VoLTE", "SLIMBUS_0_TX"},
22811 {"VoLTE_Tx Mixer", "INTERNAL_BT_SCO_TX_VoLTE", "INT_BT_SCO_TX"},
22812 {"VoLTE_Tx Mixer", "AFE_PCM_TX_VoLTE", "PCM_TX"},
22813 {"VoLTE_Tx Mixer", "AUX_PCM_TX_VoLTE", "AUX_PCM_TX"},
22814 {"VoLTE_Tx Mixer", "SEC_AUX_PCM_TX_VoLTE", "SEC_AUX_PCM_TX"},
22815 {"VoLTE_Tx Mixer", "MI2S_TX_VoLTE", "MI2S_TX"},
22816 {"VoLTE_Tx Mixer", "PRI_MI2S_TX_VoLTE", "PRI_MI2S_TX"},
22817 {"VoLTE_Tx Mixer", "TERT_MI2S_TX_VoLTE", "TERT_MI2S_TX"},
22818 {"VoLTE_Tx Mixer", "PRI_TDM_TX_3_VoLTE", "PRI_TDM_TX_3"},
22819 {"VoLTE_UL", NULL, "VoLTE_Tx Mixer"},
22820
22821 {"VoWLAN_Tx Mixer", "PRI_TX_VoWLAN", "PRI_I2S_TX"},
22822 {"VoWLAN_Tx Mixer", "SLIM_0_TX_VoWLAN", "SLIMBUS_0_TX"},
22823 {"VoWLAN_Tx Mixer", "INTERNAL_BT_SCO_TX_VoWLAN", "INT_BT_SCO_TX"},
22824 {"VoWLAN_Tx Mixer", "AFE_PCM_TX_VoWLAN", "PCM_TX"},
22825 {"VoWLAN_Tx Mixer", "AUX_PCM_TX_VoWLAN", "AUX_PCM_TX"},
22826 {"VoWLAN_Tx Mixer", "SEC_AUX_PCM_TX_VoWLAN", "SEC_AUX_PCM_TX"},
22827 {"VoWLAN_Tx Mixer", "MI2S_TX_VoWLAN", "MI2S_TX"},
22828 {"VoWLAN_Tx Mixer", "PRI_MI2S_TX_VoWLAN", "PRI_MI2S_TX"},
22829 {"VoWLAN_Tx Mixer", "TERT_MI2S_TX_VoWLAN", "TERT_MI2S_TX"},
22830 {"VoWLAN_Tx Mixer", "PRI_TDM_TX_3_VoWLAN", "PRI_TDM_TX_3"},
22831 {"VoWLAN_UL", NULL, "VoWLAN_Tx Mixer"},
22832
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022833 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
22834 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
22835 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
22836 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
22837 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
22838 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
22839 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
22840 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
22841 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
22842 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
22843 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
22844 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
22845 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
22846 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
22847 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022848 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022849 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022850 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
22851 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
22852 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
22853 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
22854 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
22855 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053022856 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
22857 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053022858 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022859 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
22860
22861 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
22862 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
22863 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
22864 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
22865 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
22866 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
22867 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
22868 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
22869 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
22870 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
22871 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
22872 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
22873 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
22874 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
22875 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022876 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022877 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
22878 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
22879 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
22880 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
22881 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
22882 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053022883 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
22884 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053022885 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022886 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
22887
22888 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
22889 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
22890 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
22891 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
22892 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
22893 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
22894 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
22895 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
22896 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
22897 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
22898 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
22899 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
22900 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
22901 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022902 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022903 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053022904 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022905 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
22906
22907 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
22908 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
22909 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
22910 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
22911 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
22912 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
22913 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
22914 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
22915 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
22916 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080022917 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
22918 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022919 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
22920 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
22921 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
22922 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
22923 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022924 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22925 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
22926 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022927 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22928 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
22929 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022930 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22931 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22932 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22933 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22934 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22935 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22936 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22937 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022938 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22939 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022940 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022941 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022942 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022943 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
22944
22945 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22946 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22947 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22948 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22949 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22950 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22951 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22952 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022953 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22954 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022955 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022956 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022957 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022958 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
22959
22960
22961 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22962 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22963 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22964 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22965 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22966 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22967 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22968 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022969 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22970 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022971 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022972 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022973 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022974 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
22975
22976
22977 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22978 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22979 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22980 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22981 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22982 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22983 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22984 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022985 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22986 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022987 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022988 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022989 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022990 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
22991
22992 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22993 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22994 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22995 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22996 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22997 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22998 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22999 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053023000 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
23001 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023002 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053023003 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053023004 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023005 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
23006
23007 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
23008 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
23009 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
23010 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
23011 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
23012 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053023013 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
23014 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023015 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053023016 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053023017 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023018 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
23019
23020 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
23021 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
23022 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
23023 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
23024 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
23025 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053023026 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
23027 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023028 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053023029 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053023030 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023031 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
23032
23033 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
23034 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
23035 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
23036 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
23037 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
23038 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053023039 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
23040 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023041 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053023042 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053023043 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023044 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
23045
23046
23047 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
23048 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
23049 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
23050 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
23051 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
23052 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
23053 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
23054 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
23055 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
23056 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
23057 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023058 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023059 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
23060 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
23061 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
23062 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
23063 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
23064 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
23065
23066 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
23067 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
23068 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
23069 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
23070 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
23071 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
23072 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
23073 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
23074 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
23075 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
23076 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
23077 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080023078 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
23079 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023080 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023081 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023082 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023083 {"MI2S_RX", NULL, "MI2S_DL_HL"},
23084 {"MI2S_UL_HL", NULL, "MI2S_TX"},
23085 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
23086 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
23087
23088 /* connect to INT4_MI2S_DL_HL since same pcm_id */
23089 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
23090 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
23091 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
23092 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
23093 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
23094 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
23095 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
23096 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
23097 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
23098 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
23099
23100 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
23101 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053023102 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
23103 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023104 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
23105 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
23106 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
23107 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
23108 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
23109 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
23110 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
23111 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
23112 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
23113 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
23114
23115 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
23116 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
23117 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
23118 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
23119 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
23120 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
23121 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
23122 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
23123 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
23124 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
23125 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
23126 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
23127 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
23128 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
23129 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
23130 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023131 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023132 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
23133 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
23134 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
23135 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023136 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023137 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
23138 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
23139 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
23140 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
23141 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
23142 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
23143 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
23144 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050023145 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023146 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
23147 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
23148 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
23149 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050023150 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053023151 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
23152 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
23153 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
23154 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
23155 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
23156 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
23157 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
23158 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023159
23160 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23161 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23162 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23163 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23164 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23165 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23166 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23167 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23168 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
23169 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
23170 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
23171 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
23172 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23173 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23174 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23175 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023176 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23177 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23178 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23179 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023180 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
23181
23182 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23183 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23184 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23185 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23186 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23187 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23188 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23189 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23190 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
23191 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
23192 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
23193 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
23194 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23195 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23196 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23197 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023198 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23199 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23200 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23201 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023202 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
23203
23204 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23205 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23206 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23207 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23208 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23209 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23210 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23211 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23212 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
23213 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
23214 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
23215 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
23216 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23217 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23218 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23219 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023220 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23221 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23222 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23223 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023224 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
23225
23226 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23227 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23228 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23229 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23230 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23231 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23232 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23233 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23234 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
23235 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
23236 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
23237 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
23238 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23239 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23240 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23241 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023242 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23243 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23244 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23245 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023246 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
23247
23248 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23249 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23250 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23251 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23252 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23253 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23254 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23255 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23256 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
23257 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
23258 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
23259 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
23260 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23261 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23262 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23263 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023264 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23265 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23266 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23267 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023268 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
23269
23270 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23271 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23272 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23273 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23274 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23275 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23276 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23277 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23278 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
23279 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
23280 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
23281 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
23282 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23283 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23284 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23285 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023286 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23287 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23288 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23289 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023290 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
23291
23292 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23293 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23294 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23295 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23296 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23297 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23298 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23299 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23300 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
23301 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
23302 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
23303 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
23304 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23305 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23306 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23307 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023308 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23309 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23310 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23311 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023312 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
23313
23314 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23315 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23316 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23317 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23318 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23319 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23320 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23321 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23322 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
23323 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
23324 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
23325 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
23326 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23327 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23328 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23329 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023330 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23331 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23332 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23333 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023334 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
23335
Derek Chenfdcc0982018-10-02 15:14:03 -070023336 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
23337 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
23338
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023339 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23340 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23341 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23342 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23343 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23344 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23345 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23346 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23347 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23348 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23349 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23350 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23351 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23352 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23353 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23354 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023355 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23356 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23357 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23358 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023359 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
23360
23361 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23362 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23363 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23364 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23365 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23366 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23367 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23368 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23369 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23370 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23371 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23372 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23373 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23374 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23375 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23376 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023377 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23378 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23379 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23380 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023381 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
23382
23383 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23384 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23385 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23386 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23387 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23388 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23389 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23390 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23391 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23392 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23393 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23394 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23395 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23396 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23397 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23398 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023399 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23400 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23401 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23402 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023403 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
23404
23405 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23406 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23407 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23408 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23409 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23410 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23411 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23412 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23413 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23414 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23415 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23416 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23417 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23418 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23419 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23420 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023421 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23422 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23423 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23424 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023425 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
23426
23427 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23428 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23429 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23430 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23431 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23432 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23433 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23434 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23435 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23436 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23437 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23438 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23439 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23440 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23441 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23442 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023443 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23444 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23445 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23446 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023447 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
23448
23449 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23450 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23451 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23452 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23453 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23454 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23455 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23456 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23457 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23458 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23459 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23460 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23461 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23462 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23463 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23464 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023465 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23466 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23467 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23468 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023469 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
23470
23471 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23472 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23473 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23474 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23475 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23476 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23477 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23478 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23479 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23480 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23481 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23482 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23483 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23484 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23485 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23486 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023487 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23488 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23489 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23490 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023491 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
23492
23493 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23494 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23495 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23496 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23497 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23498 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23499 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23500 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23501 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23502 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23503 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23504 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23505 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23506 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23507 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23508 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023509 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23510 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23511 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23512 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023513 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
23514
Derek Chenb9048cb2019-03-07 14:54:13 -050023515 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
23516 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
23517
Rohit Kumara5077932017-09-10 22:05:05 +053023518 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23519 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23520 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23521 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23522 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23523 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23524 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23525 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23526 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23527 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23528 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23529 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23530 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23531 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23532 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23533 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23534 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23535 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23536 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23537 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023538 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023539
23540 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23541 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23542 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23543 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23544 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23545 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23546 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23547 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23548 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23549 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23550 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23551 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23552 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23553 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23554 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23555 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23556 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23557 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23558 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23559 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023560 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023561
23562 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23563 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23564 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23565 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23566 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23567 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23568 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23569 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23570 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23571 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23572 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23573 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23574 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23575 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23576 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23577 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23578 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23579 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23580 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23581 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023582 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023583
23584 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23585 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23586 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23587 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23588 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23589 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23590 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23591 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23592 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23593 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23594 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23595 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23596 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23597 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23598 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23599 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23600 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23601 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23602 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23603 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023604 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023605
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023606 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23607 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23608 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23609 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023610 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023611 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23612 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23613 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23614 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023615 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023616 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23617 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
23618
23619 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23620 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23621 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23622 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023623 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023624 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23625 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23626 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023627 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023628 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23629 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23630 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
23631
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023632 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
23633 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080023634 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023635 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023636 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
23637
23638 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
23639 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023640 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023641 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023642
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023643 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23644 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23645 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23646 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23647 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023648 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023649 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23650 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23651 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23652 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023653 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023654 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23655 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23656 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23657 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23658 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023659 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023660 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23661 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
23662 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23663 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23664 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
23665 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
23666 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
23667 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
23668 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
23669 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
23670
23671
23672 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23673 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23674 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23675 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23676 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023677 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023678 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
23679
23680 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23681 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23682 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023683 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023684 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
23685
23686 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23687 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23688 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23689 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
23690
23691 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23692 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
23693 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23694 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
23695
Rohit Kumara5077932017-09-10 22:05:05 +053023696 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23697 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
23698 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23699 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
23700
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023701 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23702 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23703 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23704 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23705 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23706 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23707 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23708 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023709 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023710 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
23711 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23712 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23713 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23714 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23715 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23716 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23717 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23718 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23719 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23720 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
23721
23722 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23723 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23724 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23725 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23726 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23727 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23728 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23729 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23730 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23731 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23732 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070023733 {"VoLTE Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023734 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
23735
23736 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23737 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23738 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23739 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23740 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23741 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23742 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23743 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23744 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23745 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23746 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070023747 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023748 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
23749
kunleizdf5a00a2017-11-27 15:27:36 +080023750 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23751 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023752 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023753
23754 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23755 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023756 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023757
23758 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23759 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023760 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
23761
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023762 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
23763 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023764 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23765 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23766 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23767 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
23768
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023769 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
23770 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023771 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23772 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23773 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23774 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
23775
23776 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23777 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23778 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23779 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
23780 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23781 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23782 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
23783 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
23784 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23785 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
23786 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
23787 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
23788 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
23789
23790 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23791 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23792 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23793 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23794 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023795 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023796 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23797 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23798 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23799 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23800 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23801 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23802 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23803 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
23804
23805 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23806 {"HDMI", NULL, "HDMI_RX Port Mixer"},
23807
23808 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23809 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
23810
Karthikeyan Mani57550082018-05-03 18:43:58 -070023811 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
23812 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
23813
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023814 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23815 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
23816
23817 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23818 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23819 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
23820
23821 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23822 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23823 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23824 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023825 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023826 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23827 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23828 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23829 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023830 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023831 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
23832
23833 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23834 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23835 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23836 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023837 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023838 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23839 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23840 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023841 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023842 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
23843
23844 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23845 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23846 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23847 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023848 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023849 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23850 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23851 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
23852
23853 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23854 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23855 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23856 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023857 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023858 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23859 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23860 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23861 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23862 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
23863
Rohit Kumara5077932017-09-10 22:05:05 +053023864 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23865 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23866 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23867 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23868 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
23869 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23870 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23871 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
23872
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023873 /* Backend Enablement */
23874
23875 {"BE_OUT", NULL, "PRI_I2S_RX"},
23876 {"BE_OUT", NULL, "SEC_I2S_RX"},
23877 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
23878 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
23879 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
23880 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23881 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
23882 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
23883 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
23884 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
23885 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023886 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023887 {"BE_OUT", NULL, "USB_AUDIO_RX"},
23888 {"BE_OUT", NULL, "HDMI"},
23889 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070023890 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023891 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
23892 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023893 {"BE_OUT", NULL, "MI2S_RX"},
23894 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
23895 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
23896 {"BE_OUT", NULL, "TERT_MI2S_RX"},
23897 {"BE_OUT", NULL, "SEC_MI2S_RX"},
23898 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
23899 {"BE_OUT", NULL, "PRI_MI2S_RX"},
23900 {"BE_OUT", NULL, "INT0_MI2S_RX"},
23901 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023902 {"BE_OUT", NULL, "INT2_MI2S_RX"},
23903 {"BE_OUT", NULL, "INT3_MI2S_RX"},
23904 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023905 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23906 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
23907 {"BE_OUT", NULL, "INT_FM_RX"},
23908 {"BE_OUT", NULL, "PCM_RX"},
23909 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23910 {"BE_OUT", NULL, "AUX_PCM_RX"},
23911 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
23912 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
23913 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023914 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023915 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23916 {"BE_OUT", NULL, "INT_FM_RX"},
23917 {"BE_OUT", NULL, "PCM_RX"},
23918 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23919 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
23920 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
23921 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
23922 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
23923 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
23924 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
23925 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
23926 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
23927 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
23928 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023929 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023930 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
23931 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
23932 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
23933 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
23934 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
23935 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
23936 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
23937 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
23938 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050023939 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053023940 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
23941 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
23942 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
23943 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023944 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
23945 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023946 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
23947 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
23948 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
23949 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
23950 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
23951 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
23952 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
23953 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023954
23955 {"PRI_I2S_TX", NULL, "BE_IN"},
23956 {"MI2S_TX", NULL, "BE_IN"},
23957 {"QUAT_MI2S_TX", NULL, "BE_IN"},
23958 {"QUIN_MI2S_TX", NULL, "BE_IN"},
23959 {"PRI_MI2S_TX", NULL, "BE_IN"},
23960 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023961 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023962 {"INT2_MI2S_TX", NULL, "BE_IN"},
23963 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023964 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023965 {"INT5_MI2S_TX", NULL, "BE_IN"},
23966 {"SEC_MI2S_TX", NULL, "BE_IN"},
23967 {"SENARY_MI2S_TX", NULL, "BE_IN" },
23968 {"SLIMBUS_0_TX", NULL, "BE_IN" },
23969 {"SLIMBUS_1_TX", NULL, "BE_IN" },
23970 {"SLIMBUS_3_TX", NULL, "BE_IN" },
23971 {"SLIMBUS_4_TX", NULL, "BE_IN" },
23972 {"SLIMBUS_5_TX", NULL, "BE_IN" },
23973 {"SLIMBUS_6_TX", NULL, "BE_IN" },
23974 {"SLIMBUS_7_TX", NULL, "BE_IN" },
23975 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053023976 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023977 {"USB_AUDIO_TX", NULL, "BE_IN" },
23978 {"INT_BT_SCO_TX", NULL, "BE_IN"},
23979 {"INT_FM_TX", NULL, "BE_IN"},
23980 {"PCM_TX", NULL, "BE_IN"},
23981 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23982 {"BE_OUT", NULL, "STUB_RX"},
23983 {"STUB_TX", NULL, "BE_IN"},
23984 {"STUB_1_TX", NULL, "BE_IN"},
23985 {"BE_OUT", NULL, "AUX_PCM_RX"},
23986 {"AUX_PCM_TX", NULL, "BE_IN"},
23987 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
23988 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
23989 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023990 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023991 {"INCALL_RECORD_TX", NULL, "BE_IN"},
23992 {"INCALL_RECORD_RX", NULL, "BE_IN"},
23993 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
23994 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023995 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
23996 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023997 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
23998 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23999 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
24000 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
24001 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024002 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
24003 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024004 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
24005 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
24006 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
24007 {"PRI_TDM_TX_0", NULL, "BE_IN"},
24008 {"PRI_TDM_TX_1", NULL, "BE_IN"},
24009 {"PRI_TDM_TX_2", NULL, "BE_IN"},
24010 {"PRI_TDM_TX_3", NULL, "BE_IN"},
24011 {"SEC_TDM_TX_0", NULL, "BE_IN"},
24012 {"SEC_TDM_TX_1", NULL, "BE_IN"},
24013 {"SEC_TDM_TX_2", NULL, "BE_IN"},
24014 {"SEC_TDM_TX_3", NULL, "BE_IN"},
24015 {"TERT_TDM_TX_0", NULL, "BE_IN"},
24016 {"TERT_TDM_TX_1", NULL, "BE_IN"},
24017 {"TERT_TDM_TX_2", NULL, "BE_IN"},
24018 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070024019 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024020 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
24021 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
24022 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
24023 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050024024 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024025 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053024026 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
24027 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
24028 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
24029 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024030 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
24031 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
24032 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
24033 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
24034 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024035 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024036 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
24037 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
24038 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
24039 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
24040 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
24041 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024042 {"PRI_SPDIF_TX", NULL, "BE_IN"},
24043 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024044};
24045
24046static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
24047 struct snd_pcm_hw_params *params)
24048{
24049 struct snd_soc_pcm_runtime *rtd = substream->private_data;
24050 unsigned int be_id = rtd->dai_link->id;
24051
24052 if (be_id >= MSM_BACKEND_DAI_MAX) {
24053 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
24054 return -EINVAL;
24055 }
24056
24057 mutex_lock(&routing_lock);
24058 msm_bedais[be_id].sample_rate = params_rate(params);
24059 msm_bedais[be_id].channel = params_channels(params);
24060 msm_bedais[be_id].format = params_format(params);
24061 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
24062 __func__, msm_bedais[be_id].sample_rate,
24063 msm_bedais[be_id].format, be_id);
24064 mutex_unlock(&routing_lock);
24065 return 0;
24066}
24067
24068static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
24069{
24070 struct snd_soc_pcm_runtime *rtd = substream->private_data;
24071 unsigned int be_id = rtd->dai_link->id;
24072 int i, session_type, path_type, topology;
24073 struct msm_pcm_routing_bdai_data *bedai;
24074 struct msm_pcm_routing_fdai_data *fdai;
24075
24076 pr_debug("%s: substream->pcm->id:%s\n",
24077 __func__, substream->pcm->id);
24078
24079 if (be_id >= MSM_BACKEND_DAI_MAX) {
24080 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
24081 return -EINVAL;
24082 }
24083
24084 bedai = &msm_bedais[be_id];
24085 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
24086 0 : 1);
24087 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
24088 path_type = ADM_PATH_PLAYBACK;
24089 else
24090 path_type = ADM_PATH_LIVE_REC;
24091
24092 mutex_lock(&routing_lock);
24093 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
24094 if (!is_mm_lsm_fe_id(i))
24095 continue;
24096 fdai = &fe_dai_map[i][session_type];
24097 if (fdai->strm_id != INVALID_SESSION) {
24098 int idx;
24099 int port_id;
24100 unsigned long copp =
24101 session_copp_map[i][session_type][be_id];
24102 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
24103 if (test_bit(idx, &copp))
24104 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070024105
24106 if (idx >= MAX_COPPS_PER_PORT) {
24107 pr_debug("%s: copp idx is invalid, exiting\n",
24108 __func__);
24109 continue;
24110 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024111 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053024112 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024113 topology = adm_get_topology_for_port_copp_idx(port_id,
24114 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024115 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053024116 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024117 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
24118 __func__, copp, i, session_type, be_id,
24119 topology);
24120 clear_bit(idx,
24121 &session_copp_map[i][session_type][be_id]);
24122 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024123 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053024124 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024125 topology);
24126 }
24127 }
24128
24129 bedai->active = 0;
24130 bedai->sample_rate = 0;
24131 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024132 mutex_unlock(&routing_lock);
24133
24134 return 0;
24135}
24136
24137static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
24138{
24139 struct snd_soc_pcm_runtime *rtd = substream->private_data;
24140 unsigned int be_id = rtd->dai_link->id;
24141 int i, path_type, topology;
24142 int session_type = INVALID_SESSION;
24143 struct msm_pcm_routing_bdai_data *bedai;
24144 u32 channels, sample_rate;
24145 uint16_t bits_per_sample = 16, voc_path_type;
24146 struct msm_pcm_routing_fdai_data *fdai;
24147 u32 session_id;
24148 struct media_format_info voc_be_media_format;
24149 bool is_lsm;
24150
24151 pr_debug("%s: substream->pcm->id:%s\n",
24152 __func__, substream->pcm->id);
24153
24154 if (be_id >= MSM_BACKEND_DAI_MAX) {
24155 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
24156 return -EINVAL;
24157 }
24158
24159 bedai = &msm_bedais[be_id];
24160
24161 mutex_lock(&routing_lock);
24162 if (bedai->active == 1)
24163 goto done; /* Ignore prepare if back-end already active */
24164
24165 /* AFE port is not active at this point. However, still
24166 * go ahead setting active flag under the notion that
24167 * QDSP6 is able to handle ADM starting before AFE port
24168 * is started.
24169 */
24170 bedai->active = 1;
24171
24172 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
24173 if (!(is_mm_lsm_fe_id(i) &&
24174 route_check_fe_id_adm_support(i)))
24175 continue;
24176
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024177 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
24178 SESSION_TYPE_RX : SESSION_TYPE_TX;
24179 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024180 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024181 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024182 path_type = ADM_PATH_COMPRESSED_RX;
24183 else
24184 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024185 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024186 if ((fdai->passthr_mode != LEGACY_PCM) &&
24187 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020024188 path_type = ADM_PATH_COMPRESSED_TX;
24189 else
24190 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024191 }
24192
24193 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
24194 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024195 if (fdai->strm_id != INVALID_SESSION) {
24196 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053024197 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024198
24199 if (session_type == SESSION_TYPE_TX &&
24200 fdai->be_srate &&
24201 (fdai->be_srate != bedai->sample_rate)) {
24202 pr_debug("%s: flush strm %d diff BE rates\n",
24203 __func__,
24204 fdai->strm_id);
24205
24206 if (fdai->event_info.event_func)
24207 fdai->event_info.event_func(
24208 MSM_PCM_RT_EVT_BUF_RECFG,
24209 fdai->event_info.priv_data);
24210 fdai->be_srate = 0; /* might not need it */
24211 }
24212 bits_per_sample = msm_routing_get_bit_width(
24213 bedai->format);
24214
24215 app_type =
24216 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
24217 if (app_type && is_lsm) {
24218 app_type_idx =
24219 msm_pcm_routing_get_lsm_app_type_idx(app_type);
24220 sample_rate =
24221 fe_dai_app_type_cfg[i][session_type][be_id]
24222 .sample_rate;
24223 bits_per_sample =
24224 lsm_app_type_cfg[app_type_idx].bit_width;
24225 } else if (app_type) {
24226 app_type_idx =
24227 msm_pcm_routing_get_app_type_idx(app_type);
24228 sample_rate =
24229 fe_dai_app_type_cfg[i][session_type]
24230 [be_id].sample_rate;
24231 bits_per_sample =
24232 app_type_cfg[app_type_idx].bit_width;
24233 } else
24234 sample_rate = bedai->sample_rate;
24235 /*
24236 * check if ADM needs to be configured with different
24237 * channel mapping than backend
24238 */
24239 if (!bedai->adm_override_ch)
24240 channels = bedai->channel;
24241 else
24242 channels = bedai->adm_override_ch;
24243 acdb_dev_id =
24244 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
24245 topology = msm_routing_get_adm_topology(i, session_type,
24246 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020024247
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024248 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
24249 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
24250 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020024251 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
24252
Surendar Karkae7507512018-07-20 15:46:54 +053024253 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024254 sample_rate, channels, topology,
24255 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053024256 app_type, acdb_dev_id,
24257 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024258 if ((copp_idx < 0) ||
24259 (copp_idx >= MAX_COPPS_PER_PORT)) {
24260 pr_err("%s: adm open failed\n", __func__);
24261 mutex_unlock(&routing_lock);
24262 return -EINVAL;
24263 }
24264 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
24265 __func__, i, session_type, be_id);
24266 set_bit(copp_idx,
24267 &session_copp_map[i][session_type][be_id]);
24268
24269 if (msm_is_resample_needed(
24270 sample_rate,
24271 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053024272 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024273 bedai->sample_rate);
24274
24275 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024276 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024277 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024278 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053024279 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024280 topology, channels);
24281 }
24282 }
24283
24284 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
24285 session_id = msm_pcm_routing_get_voc_sessionid(i);
24286 if (session_id) {
24287 pr_debug("%s voice session_id: 0x%x\n", __func__,
24288 session_id);
24289
24290 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
24291 voc_path_type = RX_PATH;
24292 else
24293 voc_path_type = TX_PATH;
24294
24295 voc_set_route_flag(session_id, voc_path_type, 1);
24296
24297 memset(&voc_be_media_format, 0,
24298 sizeof(struct media_format_info));
24299
24300 voc_be_media_format.port_id = bedai->port_id;
24301 voc_be_media_format.num_channels = bedai->channel;
24302 voc_be_media_format.sample_rate = bedai->sample_rate;
24303 voc_be_media_format.bits_per_sample = bedai->format;
24304 /* Defaulting this to 1 for voice call usecases */
24305 voc_be_media_format.channel_mapping[0] = 1;
24306
24307 voc_set_device_config(session_id, voc_path_type,
24308 &voc_be_media_format);
24309
24310 if (voc_get_route_flag(session_id, RX_PATH) &&
24311 voc_get_route_flag(session_id, TX_PATH))
24312 voc_enable_device(session_id);
24313 }
24314 }
24315
24316 /* Check if backend is an external ec ref port and set as needed */
24317 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
24318
24319 memset(&voc_be_media_format, 0,
24320 sizeof(struct media_format_info));
24321
24322 /* Get format info for ec ref port from msm_bedais[] */
24323 voc_be_media_format.port_id = bedai->port_id;
24324 voc_be_media_format.num_channels = bedai->channel;
24325 voc_be_media_format.bits_per_sample = bedai->format;
24326 voc_be_media_format.sample_rate = bedai->sample_rate;
24327 /* Defaulting this to 1 for voice call usecases */
24328 voc_be_media_format.channel_mapping[0] = 1;
24329 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
24330 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
24331 __func__, voc_be_media_format.port_id,
24332 voc_be_media_format.num_channels,
24333 voc_be_media_format.bits_per_sample,
24334 voc_be_media_format.sample_rate);
24335 }
24336
24337done:
24338 mutex_unlock(&routing_lock);
24339
24340 return 0;
24341}
24342
24343static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
24344 int fe_id)
24345{
24346 int index, topo_id, be_idx;
24347 unsigned long pp_config = 0;
24348 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024349 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024350 bool compr_passthr_mode = true;
24351
24352 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
24353
24354 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
24355 pr_err("%s: Device pp params on invalid port %d\n",
24356 __func__, port_id);
24357 return -EINVAL;
24358 }
24359
24360 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
24361 if (port_id == msm_bedais[be_idx].port_id)
24362 break;
24363 }
24364
24365 if (be_idx >= MSM_BACKEND_DAI_MAX) {
24366 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
24367 return -EINVAL;
24368 }
24369
24370 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
24371 if (msm_bedais_pp_params[index].port_id == port_id)
24372 break;
24373 }
24374 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
24375 pr_err("%s: Invalid backend pp params index %d\n",
24376 __func__, index);
24377 return -EINVAL;
24378 }
24379
24380 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
24381 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
24382 pr_err("%s: Invalid passthrough topology 0x%x\n",
24383 __func__, topo_id);
24384 return -EINVAL;
24385 }
24386
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024387 session_type =
24388 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
24389 SESSION_TYPE_RX : SESSION_TYPE_TX;
24390
24391 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
24392 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024393 compr_passthr_mode = false;
24394
24395 pp_config = msm_bedais_pp_params[index].pp_params_config;
24396 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
24397 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
24398 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
24399 mute_on = msm_bedais_pp_params[index].mute_on;
24400 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24401 adm_send_compressed_device_mute(port_id,
24402 copp_idx,
24403 mute_on);
24404 }
24405 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
24406 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
24407 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
24408 &pp_config);
24409 latency = msm_bedais_pp_params[index].latency;
24410 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24411 adm_send_compressed_device_latency(port_id,
24412 copp_idx,
24413 latency);
24414 }
24415 return 0;
24416}
24417
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024418static uint32_t msm_routing_get_topology(size_t data_size, void *data)
24419{
24420 uint32_t topology = NULL_COPP_TOPOLOGY;
24421 void *cal_info = NULL;
24422 uint32_t size = 0;
24423
24424 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053024425 if (data_size < sizeof(struct audio_cal_type_basic) +
24426 sizeof(struct audio_cal_info_adm_top)) {
24427 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
24428 goto done;
24429 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024430 size = data_size - sizeof(struct audio_cal_type_basic);
24431 cal_info = kzalloc(size, GFP_KERNEL);
24432
24433 if (!cal_info)
24434 goto done;
24435
24436 memcpy(cal_info,
24437 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
24438
24439 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
24440 kfree(cal_info);
24441 cal_info = NULL;
24442
24443done:
24444 pr_debug("%s: Using topology %d\n", __func__, topology);
24445
24446 return topology;
24447}
24448
24449static void msm_routing_load_topology(size_t data_size, void *data)
24450{
24451 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053024452 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024453
24454 topology_id = msm_routing_get_topology(data_size, data);
24455 if (topology_id != NULL_COPP_TOPOLOGY)
24456 ret = q6core_load_unload_topo_modules(topology_id,
24457 CORE_LOAD_TOPOLOGY);
24458 if (ret < 0)
24459 pr_debug("%s %d load topology failed\n",
24460 __func__, topology_id);
24461
24462}
24463
24464static void msm_routing_unload_topology(uint32_t topology_id)
24465{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053024466 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024467
24468 if (topology_id != NULL_COPP_TOPOLOGY)
24469 ret = q6core_load_unload_topo_modules(topology_id,
24470 CORE_UNLOAD_TOPOLOGY);
24471 if (ret < 0)
24472 pr_debug("%s %d unload topology failed\n",
24473 __func__, topology_id);
24474
24475}
24476
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024477static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
24478 struct snd_ctl_elem_value *ucontrol)
24479{
24480 int pp_id = ucontrol->value.integer.value[0];
24481 int port_id = 0;
24482 int index, be_idx, i, topo_id, idx;
24483 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024484 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024485 bool compr_passthr_mode = true;
24486
24487 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
24488
24489 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
24490 port_id = msm_bedais[be_idx].port_id;
24491 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
24492 break;
24493 }
24494
24495 if (be_idx >= MSM_BACKEND_DAI_MAX) {
24496 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
24497 return -EINVAL;
24498 }
24499
24500 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
24501 if (msm_bedais_pp_params[index].port_id == port_id)
24502 break;
24503 }
24504 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
24505 pr_err("%s: Invalid pp params backend index %d\n",
24506 __func__, index);
24507 return -EINVAL;
24508 }
24509
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024510 session_type =
24511 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
24512 SESSION_TYPE_RX : SESSION_TYPE_TX;
24513
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024514 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
24515 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024516 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
24517 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024518 compr_passthr_mode = false;
24519
24520 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
24521 unsigned long copp =
24522 session_copp_map[i]
24523 [SESSION_TYPE_RX][be_idx];
24524 if (!test_bit(idx, &copp))
24525 continue;
24526 topo_id = adm_get_topology_for_port_copp_idx(port_id,
24527 idx);
24528 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
24529 continue;
24530 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
24531 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024532 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024533 switch (pp_id) {
24534 case ADM_PP_PARAM_MUTE_ID:
24535 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
24536 mute = ucontrol->value.integer.value[1] ? true : false;
24537 msm_bedais_pp_params[index].mute_on = mute;
24538 set_bit(ADM_PP_PARAM_MUTE_BIT,
24539 &msm_bedais_pp_params[index].pp_params_config);
24540 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24541 adm_send_compressed_device_mute(port_id,
24542 idx, mute);
24543 break;
24544 case ADM_PP_PARAM_LATENCY_ID:
24545 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
24546 msm_bedais_pp_params[index].latency =
24547 ucontrol->value.integer.value[1];
24548 set_bit(ADM_PP_PARAM_LATENCY_BIT,
24549 &msm_bedais_pp_params[index].pp_params_config);
24550 latency = msm_bedais_pp_params[index].latency =
24551 ucontrol->value.integer.value[1];
24552 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24553 adm_send_compressed_device_latency(port_id,
24554 idx, latency);
24555 break;
24556 default:
24557 pr_info("%s, device pp param %d not supported\n",
24558 __func__, pp_id);
24559 break;
24560 }
24561 }
24562 }
24563 return 0;
24564}
24565
24566static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
24567 struct snd_ctl_elem_value *ucontrol)
24568{
24569 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
24570 return 0;
24571}
24572
24573static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
24574 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
24575 0, 3, msm_routing_get_device_pp_params_mixer,
24576 msm_routing_put_device_pp_params_mixer),
24577};
24578
24579static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
24580 struct snd_ctl_elem_value *ucontrol)
24581{
24582 ucontrol->value.integer.value[0] =
24583 core_get_license_status(ASM_MEDIA_FMT_APTX);
24584 pr_debug("%s: status %ld\n", __func__,
24585 ucontrol->value.integer.value[0]);
24586 return 0;
24587}
24588
24589static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
24590 struct snd_ctl_elem_value *ucontrol)
24591{
24592 int32_t status = 0;
24593
24594 status = core_set_license(ucontrol->value.integer.value[0],
24595 APTX_CLASSIC_DEC_LICENSE_ID);
24596 pr_debug("%s: status %d\n", __func__, status);
24597 return status;
24598}
24599
24600static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
24601 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
24602 0xFFFF, 0, msm_aptx_dec_license_control_get,
24603 msm_aptx_dec_license_control_put),
24604};
24605
24606static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
24607 struct snd_ctl_elem_info *uinfo)
24608{
24609 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
24610 uinfo->count = sizeof(be_dai_name_table);
24611 return 0;
24612}
24613
24614static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
24615 unsigned int __user *bytes,
24616 unsigned int size)
24617{
24618 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053024619 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024620
24621 if (size < sizeof(be_dai_name_table)) {
24622 pr_err("%s: invalid size %d requested, returning\n",
24623 __func__, size);
24624 ret = -EINVAL;
24625 goto done;
24626 }
24627
24628 /*
24629 * Fill be_dai_name_table from msm_bedais table to reduce code changes
24630 * needed when adding new backends
24631 */
24632 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24633 be_dai_name_table[i].be_id = i;
24634 strlcpy(be_dai_name_table[i].be_name,
24635 msm_bedais[i].name,
24636 LPASS_BE_NAME_MAX_LENGTH);
24637 }
24638
24639 ret = copy_to_user(bytes, &be_dai_name_table,
24640 sizeof(be_dai_name_table));
24641 if (ret) {
24642 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
24643 ret = -EFAULT;
24644 }
24645
24646done:
24647 return ret;
24648}
24649
24650static const struct snd_kcontrol_new
24651 msm_routing_be_dai_name_table_mixer_controls[] = {
24652 {
24653 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
24654 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
24655 .info = msm_routing_be_dai_name_table_info,
24656 .name = "Backend DAI Name Table",
24657 .tlv.c = snd_soc_bytes_tlv_callback,
24658 .private_value = (unsigned long) &(struct soc_bytes_ext) {
24659 .max = sizeof(be_dai_name_table),
24660 .get = msm_routing_be_dai_name_table_tlv_get,
24661 }
24662 },
24663};
24664
24665static int msm_routing_stereo_channel_reverse_control_get(
24666 struct snd_kcontrol *kcontrol,
24667 struct snd_ctl_elem_value *ucontrol)
24668{
24669 ucontrol->value.integer.value[0] = swap_ch;
24670 pr_debug("%s: Swap channel value: %ld\n", __func__,
24671 ucontrol->value.integer.value[0]);
24672 return 0;
24673}
24674
24675static int msm_routing_stereo_channel_reverse_control_put(
24676 struct snd_kcontrol *kcontrol,
24677 struct snd_ctl_elem_value *ucontrol)
24678{
24679 int i, idx, be_index, port_id;
24680 int ret = 0;
24681 unsigned long copp;
24682
24683 pr_debug("%s Swap channel value:%ld\n", __func__,
24684 ucontrol->value.integer.value[0]);
24685
24686 swap_ch = ucontrol->value.integer.value[0];
24687
24688 mutex_lock(&routing_lock);
24689 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
24690 port_id = msm_bedais[be_index].port_id;
24691 if (!msm_bedais[be_index].active)
24692 continue;
24693
24694 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
24695 MSM_FRONTEND_DAI_MM_SIZE) {
24696 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
24697 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
24698 if (!test_bit(idx, &copp))
24699 continue;
24700
24701 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
24702 __func__, port_id, idx);
24703 ret = adm_swap_speaker_channels(
24704 port_id, idx,
24705 msm_bedais[be_index].sample_rate,
24706 swap_ch);
24707 if (ret) {
24708 pr_err("%s:Swap_channel failed, err=%d\n",
24709 __func__, ret);
24710 goto done;
24711 }
24712 }
24713 }
24714 }
24715done:
24716 mutex_unlock(&routing_lock);
24717 return ret;
24718}
24719
24720static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
24721 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
24722 1, 0, msm_routing_stereo_channel_reverse_control_get,
24723 msm_routing_stereo_channel_reverse_control_put),
24724};
24725
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024726static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
24727 struct snd_ctl_elem_info *uinfo)
24728{
24729 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
24730 uinfo->count = 1;
24731 return 0;
24732}
24733
24734static int msm_routing_instance_id_support_put(
24735 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24736{
24737 bool supported = ucontrol->value.integer.value[0] ? true : false;
24738
24739 q6common_update_instance_id_support(supported);
24740 return 0;
24741}
24742
24743static int msm_routing_instance_id_support_get(
24744 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24745{
24746 bool supported = false;
24747
24748 supported = q6common_is_instance_id_supported();
24749 ucontrol->value.integer.value[0] = supported ? 1 : 0;
24750
24751 return 0;
24752}
24753
24754static const struct snd_kcontrol_new
24755 msm_routing_feature_support_mixer_controls[] = {
24756 {
24757 .access = SNDRV_CTL_ELEM_ACCESS_READ |
24758 SNDRV_CTL_ELEM_ACCESS_WRITE,
24759 .info = msm_routing_instance_id_support_info,
24760 .name = "Instance ID Support",
24761 .put = msm_routing_instance_id_support_put,
24762 .get = msm_routing_instance_id_support_get,
24763 },
24764};
24765
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024766static const struct snd_pcm_ops msm_routing_pcm_ops = {
24767 .hw_params = msm_pcm_routing_hw_params,
24768 .close = msm_pcm_routing_close,
24769 .prepare = msm_pcm_routing_prepare,
24770};
24771
24772/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080024773static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024774{
Meng Wangee084a02018-09-04 16:11:58 +080024775 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024776 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080024777 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024778 ARRAY_SIZE(intercon));
24779
Meng Wangee084a02018-09-04 16:11:58 +080024780 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024781
Meng Wangee084a02018-09-04 16:11:58 +080024782 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024783 ARRAY_SIZE(lsm_controls));
24784
Meng Wangee084a02018-09-04 16:11:58 +080024785 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024786 ARRAY_SIZE(aanc_slim_0_rx_mux));
24787
Meng Wangee084a02018-09-04 16:11:58 +080024788 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053024789 ARRAY_SIZE(aanc_noise_level));
24790
Meng Wangee084a02018-09-04 16:11:58 +080024791 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024792 ARRAY_SIZE(msm_voc_session_controls));
24793
Meng Wangee084a02018-09-04 16:11:58 +080024794 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024795 ARRAY_SIZE(app_type_cfg_controls));
24796
Meng Wangee084a02018-09-04 16:11:58 +080024797 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024798 ARRAY_SIZE(lsm_app_type_cfg_controls));
24799
Meng Wangee084a02018-09-04 16:11:58 +080024800 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070024801 ARRAY_SIZE(module_cfg_controls));
24802
Meng Wangee084a02018-09-04 16:11:58 +080024803 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024804 stereo_to_custom_stereo_controls,
24805 ARRAY_SIZE(stereo_to_custom_stereo_controls));
24806
Meng Wangee084a02018-09-04 16:11:58 +080024807 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024808 ARRAY_SIZE(ec_ref_param_controls));
24809
Meng Wangee084a02018-09-04 16:11:58 +080024810 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024811 ARRAY_SIZE(channel_mixer_controls));
24812
Meng Wangee084a02018-09-04 16:11:58 +080024813 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024814
Meng Wangee084a02018-09-04 16:11:58 +080024815 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024816
Meng Wangee084a02018-09-04 16:11:58 +080024817 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024818
Meng Wangee084a02018-09-04 16:11:58 +080024819 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024820 use_ds1_or_ds2_controls,
24821 ARRAY_SIZE(use_ds1_or_ds2_controls));
24822
Meng Wangee084a02018-09-04 16:11:58 +080024823 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024824 device_pp_params_mixer_controls,
24825 ARRAY_SIZE(device_pp_params_mixer_controls));
24826
Meng Wangee084a02018-09-04 16:11:58 +080024827 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024828 msm_routing_be_dai_name_table_mixer_controls,
24829 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
24830
Meng Wangee084a02018-09-04 16:11:58 +080024831 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024832 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024833 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024834 ARRAY_SIZE(adm_channel_config_controls));
24835
Meng Wangee084a02018-09-04 16:11:58 +080024836 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024837 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024838 snd_soc_add_component_controls(component,
24839 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024840 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080024841 snd_soc_add_component_controls(
24842 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024843 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
24844
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024845 return 0;
24846}
24847
24848int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
24849{
24850 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
24851}
24852
24853void msm_routing_pcm_free(struct snd_pcm *pcm)
24854{
24855 msm_pcm_routing_hwdep_free(pcm);
24856}
24857
Meng Wangee084a02018-09-04 16:11:58 +080024858static struct snd_soc_component_driver msm_soc_routing_component = {
24859 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024860 .ops = &msm_routing_pcm_ops,
24861 .probe = msm_routing_probe,
24862 .pcm_new = msm_routing_pcm_new,
24863 .pcm_free = msm_routing_pcm_free,
24864};
24865
24866static int msm_routing_pcm_probe(struct platform_device *pdev)
24867{
24868
24869 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080024870 return snd_soc_register_component(&pdev->dev,
24871 &msm_soc_routing_component,
24872 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024873}
24874
24875static int msm_routing_pcm_remove(struct platform_device *pdev)
24876{
Meng Wangee084a02018-09-04 16:11:58 +080024877 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024878 return 0;
24879}
24880
24881static const struct of_device_id msm_pcm_routing_dt_match[] = {
24882 {.compatible = "qcom,msm-pcm-routing"},
24883 {}
24884};
24885MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
24886
24887static struct platform_driver msm_routing_pcm_driver = {
24888 .driver = {
24889 .name = "msm-pcm-routing",
24890 .owner = THIS_MODULE,
24891 .of_match_table = msm_pcm_routing_dt_match,
24892 },
24893 .probe = msm_routing_pcm_probe,
24894 .remove = msm_routing_pcm_remove,
24895};
24896
24897int msm_routing_check_backend_enabled(int fedai_id)
24898{
24899 int i;
24900
24901 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
24902 /* bad ID assigned in machine driver */
24903 pr_err("%s: bad MM ID\n", __func__);
24904 return 0;
24905 }
24906 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24907 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
24908 return msm_bedais[i].active;
24909 }
24910 return 0;
24911}
24912
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024913static int get_cal_type_index(int32_t cal_type)
24914{
24915 int ret = -EINVAL;
24916
24917 switch (cal_type) {
24918 case ADM_TOPOLOGY_CAL_TYPE:
24919 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
24920 break;
24921 case ADM_LSM_TOPOLOGY_CAL_TYPE:
24922 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
24923 break;
24924 default:
24925 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
24926 }
24927 return ret;
24928}
24929
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024930static int msm_routing_set_cal(int32_t cal_type,
24931 size_t data_size, void *data)
24932{
24933 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024934 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024935 pr_debug("%s\n", __func__);
24936
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024937 cal_index = get_cal_type_index(cal_type);
24938 if (cal_index < 0) {
24939 pr_err("%s: Could not get cal index %d\n",
24940 __func__, cal_index);
24941 ret = -EINVAL;
24942 goto done;
24943 }
24944
24945 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024946 if (ret < 0) {
24947 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
24948 __func__, ret, cal_type);
24949 ret = -EINVAL;
24950 goto done;
24951 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024952 /* Pre-load if it is ADM topology */
24953 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
24954 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
24955 msm_routing_load_topology(data_size, data);
24956 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024957done:
24958 return ret;
24959}
24960
24961static void msm_routing_delete_cal_data(void)
24962{
24963 pr_debug("%s\n", __func__);
24964
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024965 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024966}
24967
24968static int msm_routing_init_cal_data(void)
24969{
24970 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024971 struct cal_type_info cal_type_info[] = {
24972 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024973 {NULL, NULL, NULL,
24974 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024975 {NULL, NULL, cal_utils_match_buf_num} },
24976
24977 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
24978 {NULL, NULL, NULL,
24979 msm_routing_set_cal, NULL, NULL} },
24980 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024981 };
24982 pr_debug("%s\n", __func__);
24983
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024984 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
24985 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024986 if (ret < 0) {
24987 pr_err("%s: could not create cal type!\n",
24988 __func__);
24989 ret = -EINVAL;
24990 goto err;
24991 }
24992
24993 return ret;
24994err:
24995 msm_routing_delete_cal_data();
24996 return ret;
24997}
24998
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053024999int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025000{
25001 mutex_init(&routing_lock);
25002 if (msm_routing_init_cal_data())
25003 pr_err("%s: could not init cal data!\n", __func__);
25004
25005 afe_set_routing_callback(
25006 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
25007
25008 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
25009 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
25010
25011 return platform_driver_register(&msm_routing_pcm_driver);
25012}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025013
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053025014void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025015{
25016 msm_routing_delete_cal_data();
25017 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
25018 mutex_destroy(&routing_lock);
25019 platform_driver_unregister(&msm_routing_pcm_driver);
25020}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025021
25022MODULE_DESCRIPTION("MSM routing platform driver");
25023MODULE_LICENSE("GPL v2");