blob: 00f603e36e8263b616d4ebf2ea3926dee02657b4 [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;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053060static int int0_mi2s_switch_enable;
61static int int4_mi2s_switch_enable;
62static int pri_mi2s_switch_enable;
63static int sec_mi2s_switch_enable;
64static int tert_mi2s_switch_enable;
65static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053066static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053067static int fm_pcmrx_switch_enable;
68static int usb_switch_enable;
69static int lsm_port_index;
70static int slim0_rx_aanc_fb_port;
71static int msm_route_ec_ref_rx;
72static int msm_ec_ref_ch = 4;
73static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
74static int msm_ec_ref_sampling_rate = 48000;
75static uint32_t voc_session_id = ALL_SESSION_VSID;
76static int msm_route_ext_ec_ref;
77static bool is_custom_stereo_on;
78static bool is_ds2_on;
79static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053080static int aanc_level;
Meng Wangadbca4f2018-10-29 14:30:13 +080081static int num_app_cfg_types;
Surendar Karkae7507512018-07-20 15:46:54 +053082static int msm_ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053083
84#define WEIGHT_0_DB 0x4000
85/* all the FEs which can support channel mixer */
86static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
87/* input BE for each FE */
88static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
89
90enum {
91 MADNONE,
92 MADAUDIO,
93 MADBEACON,
94 MADULTRASOUND,
95 MADSWAUDIO,
96};
97
98#define ADM_LSM_PORT_INDEX 9
99
100#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
101#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
102#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
103#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
104#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
105#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
106#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
107#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
108#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
109#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530110#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
111#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800112#define VA_CDC_DMA_TX_2_TEXT "VA_CDC_DMA_TX_2"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530113#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530114#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530115
116#define LSM_FUNCTION_TEXT "LSM Function"
117static const char * const lsm_port_text[] = {
118 "None",
119 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
120 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
121 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530122 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800123 VA_CDC_DMA_TX_2_TEXT, TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530124};
125
126struct msm_pcm_route_bdai_pp_params {
127 u16 port_id; /* AFE port ID */
128 unsigned long pp_params_config;
129 bool mute_on;
130 int latency;
131};
132
133static struct msm_pcm_route_bdai_pp_params
134 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
135 {HDMI_RX, 0, 0, 0},
136 {DISPLAY_PORT_RX, 0, 0, 0},
137};
138
139/*
140 * The be_dai_name_table is passed to HAL so that it can specify the
141 * BE ID for the BE it wants to enable based on the name. Thus there
142 * is a matching table and structure in HAL that need to be updated
143 * if any changes to these are made.
144 */
145struct msm_pcm_route_bdai_name {
146 unsigned int be_id;
147 char be_name[LPASS_BE_NAME_MAX_LENGTH];
148};
149static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
150
151static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
152 int fe_id);
153
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700154static void msm_routing_load_topology(size_t data_size, void *data);
155static void msm_routing_unload_topology(uint32_t topology_id);
156
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530157static int msm_routing_get_bit_width(unsigned int format)
158{
159 int bit_width;
160
161 switch (format) {
162 case SNDRV_PCM_FORMAT_S32_LE:
163 bit_width = 32;
164 break;
165 case SNDRV_PCM_FORMAT_S24_LE:
166 case SNDRV_PCM_FORMAT_S24_3LE:
167 bit_width = 24;
168 break;
169 case SNDRV_PCM_FORMAT_S16_LE:
170 default:
171 bit_width = 16;
172 }
173 return bit_width;
174}
175
176static bool msm_is_resample_needed(int input_sr, int output_sr)
177{
178 bool rc = false;
179
180 if (input_sr != output_sr)
181 rc = true;
182
183 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
184 (rc ? "oh yes" : "not really"),
185 input_sr, output_sr);
186
187 return rc;
188}
189
190static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
191 int channels)
192{
193 int rc = 0;
194
195 switch (topology) {
196 case SRS_TRUMEDIA_TOPOLOGY_ID:
197 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
198 msm_dts_srs_tm_init(port_id, copp_idx);
199 break;
200 case DS2_ADM_COPP_TOPOLOGY_ID:
201 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
202 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
203 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
204 is_custom_stereo_on);
205 if (rc < 0)
206 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
207 __func__, topology, port_id,
208 is_custom_stereo_on, rc);
209 break;
210 case DOLBY_ADM_COPP_TOPOLOGY_ID:
211 if (is_ds2_on) {
212 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
213 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
214 is_custom_stereo_on);
215 if (rc < 0)
216 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
217 __func__, topology, port_id, rc);
218 } else {
219 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
220 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
221 is_custom_stereo_on);
222 if (rc < 0)
223 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
224 __func__, topology, port_id, rc);
225 }
226 break;
227 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
228 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
229 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
230 if (rc < 0)
231 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
232 __func__, topology, port_id, copp_idx, rc);
233 break;
234 default:
235 /* custom topology specific feature param handlers */
236 break;
237 }
238}
239
240static void msm_pcm_routing_deinit_pp(int port_id, int topology)
241{
242 switch (topology) {
243 case SRS_TRUMEDIA_TOPOLOGY_ID:
244 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
245 msm_dts_srs_tm_deinit(port_id);
246 break;
247 case DS2_ADM_COPP_TOPOLOGY_ID:
248 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
249 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
250 msm_ds2_dap_deinit(port_id);
251 break;
252 case DOLBY_ADM_COPP_TOPOLOGY_ID:
253 if (is_ds2_on) {
254 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
255 msm_ds2_dap_deinit(port_id);
256 } else {
257 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
258 msm_dolby_dap_deinit(port_id);
259 }
260 break;
261 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
262 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
263 msm_qti_pp_asphere_deinit(port_id);
264 break;
265 default:
266 /* custom topology specific feature deinit handlers */
267 break;
268 }
269}
270
271static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
272 int path_type, int perf_mode)
273{
274 int itr = 0, rc = 0;
275
276 if ((path_type == ADM_PATH_PLAYBACK) &&
277 (perf_mode == LEGACY_PCM_MODE) &&
278 is_custom_stereo_on) {
279 for (itr = 0; itr < payload.num_copps; itr++) {
280 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
281 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
282 continue;
283 }
284
285 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
286 payload.port_id[itr],
287 payload.copp_idx[itr],
288 payload.session_id,
289 Q14_GAIN_ZERO_POINT_FIVE,
290 Q14_GAIN_ZERO_POINT_FIVE,
291 Q14_GAIN_ZERO_POINT_FIVE,
292 Q14_GAIN_ZERO_POINT_FIVE);
293 if (rc < 0)
294 pr_err("%s: err setting custom stereo\n",
295 __func__);
296 }
297 }
298}
299
300#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
301struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530302 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
303 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
304 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
305 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
306 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
307 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
308 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
309 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
310 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
311 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530312 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530313 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530314 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530315 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530316 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530317 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530318 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530319 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530320 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530321 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530322 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530323 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530324 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530325 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530326 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530327 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
328 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
329 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
330 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
331 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
332 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
333 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
334 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
335 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
336 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
337 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
338 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
339 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
340 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
341 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
342 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
343 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
344 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
345 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
346 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
347 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
348 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
349 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530350 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530351 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530352 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530353 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530354 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530355 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530356 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530357 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530358 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530359 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530360 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530361 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530362 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530363 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530364 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530365 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530366 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530367 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530368 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530369 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530370 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530371 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200372 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530373 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530374 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530375 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530376 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530377 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530378 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530379 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530380 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530381 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530382 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530383 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530384 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530385 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530386 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530387 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530388 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530389 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530390 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530391 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530392 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530393 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530394 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530395 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530396 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530397 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530398 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530399 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530400 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530401 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530402 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530403 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530404 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530405 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530406 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530407 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530408 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530409 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530410 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530411 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530412 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530413 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530414 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530415 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530416 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530417 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530418 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530419 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530420 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530421 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530422 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530423 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530424 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530425 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530426 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530427 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530428 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530429 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530430 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530431 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530432 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530433 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530434 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530435 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530436 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530437 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530438 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530439 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530440 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530441 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530442 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530443 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530444 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530445 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530446 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530447 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530448 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530449 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530450 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530451 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530452 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530453 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530454 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530455 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530456 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530457 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530458 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530459 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530460 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530461 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530462 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530463 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530464 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530465 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530466 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530467 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530468 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530469 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530470 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530471 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530472 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530473 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530474 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530475 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530476 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530477 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530478 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530479 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530480 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530481 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530482 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530483 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530484 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530485 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530486 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530487 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530488 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530489 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530490 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530491 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530492 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530493 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530494 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530495 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530496 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530497 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530498 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530499 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530500 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530501 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530502 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530503 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530504 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530505 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530506 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530507 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530508 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530509 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530510 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530511 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530512 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530513 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530514 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530515 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530516 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530517 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530518 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530519 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530520 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530521 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530522 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530523 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530524 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530525 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530526 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530527 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530528 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530529 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530530 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530531 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530532 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530533 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530534 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530535 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530536 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530537 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530538 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530539 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530540 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530541 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530542 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530543 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530544 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530545 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530546 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530547 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530548 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530549 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700550 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530551 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530552 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530553 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530554 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530555 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530556 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530557 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530558 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530559 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530560 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530561 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530562 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530563 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530564 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530565 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530566 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530567 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530568 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530569 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530570 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530571 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530572 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530573 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530574 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530575 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530576 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530577 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530578 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530579 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530580 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530581 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530582 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530583 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530584 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530585 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530586 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530587 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530588 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530589 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530590 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200591 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
592 LPASS_BE_SEN_AUXPCM_RX},
593 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
594 LPASS_BE_SEN_AUXPCM_TX},
595 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
596 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530597 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530598 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530599 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530600 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530601 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530602 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530603 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530604 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530605 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530606 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530607 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530608 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530609 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530610 LPASS_BE_VA_CDC_DMA_TX_1},
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800611 { AFE_PORT_ID_VA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
612 LPASS_BE_VA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530613 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530614 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530615 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530616 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530617 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530618 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530619 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530620 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530621 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530622 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530623 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530624 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530625 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530626 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530627 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530628 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530629 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530630 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530631 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530632 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530633 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530634 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530635 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530636 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530637 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530638 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530639 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530640 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530641 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200642 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530643 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200644 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530645 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200646 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530647 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
648 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530649 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530650};
651
652/* Track ASM playback & capture sessions of DAI
653 * Track LSM listen sessions
654 */
655static struct msm_pcm_routing_fdai_data
656 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
657 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530658 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
659 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530660 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530661 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
662 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530663 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530664 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
665 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530666 /* MULTIMEDIA4 */
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 /* MULTIMEDIA5 */
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 /* MULTIMEDIA6 */
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 /* MULTIMEDIA7*/
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 /* MULTIMEDIA8 */
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 /* MULTIMEDIA9 */
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 /* MULTIMEDIA10 */
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 /* MULTIMEDIA11 */
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 /* MULTIMEDIA12 */
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 /* MULTIMEDIA13 */
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 /* MULTIMEDIA14 */
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 /* MULTIMEDIA15 */
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 /* MULTIMEDIA16 */
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 /* MULTIMEDIA17 */
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 /* MULTIMEDIA18 */
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 /* MULTIMEDIA19 */
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 /* MULTIMEDIA20 */
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} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700717 /* MULTIMEDIA21 */
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} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530720 /* MULTIMEDIA26 */
721 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
722 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
723 /* MULTIMEDIA27 */
724 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
725 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530726 /* MULTIMEDIA28 */
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} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530729 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530730 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
731 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530732 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530733 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
734 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530735 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530736 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
737 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530738 /* AFE_TX */
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 /* VOICE_STUB */
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 /* DTMF_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 /* QCHAT */
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 /* VOLTE_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 /* LSM1 */
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 /* LSM2 */
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 /* LSM3 */
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 /* LSM4 */
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 /* LSM5 */
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 /* LSM6 */
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 /* LSM7 */
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 /* LSM8 */
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 /* VOICE2_STUB */
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 /* VOICEMMODE1 */
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 /* VOICEMMODE2 */
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};
787
788static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
789 [MSM_BACKEND_DAI_MAX];
790static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
791static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
792static struct msm_pcm_stream_app_type_cfg
793 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
794
795static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
796
Florian Pfister522073c2018-09-26 15:39:15 +0200797/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530798void msm_pcm_routing_get_bedai_info(int be_idx,
799 struct msm_pcm_routing_bdai_data *be_dai)
800{
801 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
802 memcpy(be_dai, &msm_bedais[be_idx],
803 sizeof(struct msm_pcm_routing_bdai_data));
804}
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_fedai_info(int fe_idx, int sess_type,
808 struct msm_pcm_routing_fdai_data *fe_dai)
809{
810 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
811 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
812 sizeof(struct msm_pcm_routing_fdai_data));
813}
814
815void msm_pcm_routing_acquire_lock(void)
816{
817 mutex_lock(&routing_lock);
818}
819
820void msm_pcm_routing_release_lock(void)
821{
822 mutex_unlock(&routing_lock);
823}
824
825static int msm_pcm_routing_get_app_type_idx(int app_type)
826{
827 int idx;
828
829 pr_debug("%s: app_type: %d\n", __func__, app_type);
830 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
831 if (app_type_cfg[idx].app_type == app_type)
832 return idx;
833 }
834 pr_info("%s: App type not available, fallback to default\n", __func__);
835 return 0;
836}
837
838static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
839{
840 int idx;
841
842 pr_debug("%s: app_type: %d\n", __func__, app_type);
843 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
844 if (lsm_app_type_cfg[idx].app_type == app_type)
845 return idx;
846 }
847 pr_debug("%s: App type not available, fallback to default\n", __func__);
848 return 0;
849}
850
Surendar Karkae7507512018-07-20 15:46:54 +0530851static int get_port_id(int port_id)
852{
853 return (port_id == AFE_LOOPBACK_TX ? msm_ec_ref_port_id : port_id);
854}
855
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530856static bool is_mm_lsm_fe_id(int fe_id)
857{
858 bool rc = true;
859
860 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
861 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
862 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
863 rc = false;
864 }
865 return rc;
866}
867
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700868/*
869 * msm_pcm_routing_send_chmix_cfg:
870 * send the channel mixer command to mix the input channels
871 * into output channels.
872 *
873 * @fe_id: front end id
874 * @ip_channel_cnt: input channel count
875 * @op_channel_cnt: output channel count
876 * @ch_wght_coeff: channel weight co-efficients for channel mixing
877 * @session_type: indicates session is of type TX or RX
878 * @stream_type: indicates either Audio or Listen stream type
879 */
880int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
881 int op_channel_cnt, int *ch_wght_coeff,
882 int session_type, int stream_type)
883{
884
885 int rc = 0, idx = 0;
886 int be_index = 0, port_id;
887 unsigned int session_id = 0;
888
889 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
890 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
891 stream_type);
892 if (!is_mm_lsm_fe_id(fe_id)) {
893 /* bad ID assigned in machine driver */
894 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
895 return -EINVAL;
896 }
897
898 if (ch_wght_coeff == NULL) {
899 pr_err("%s: Null channel weightage coefficients passed\n",
900 __func__);
901 return -EINVAL;
902 }
903
904 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
905 port_id = msm_bedais[be_index].port_id;
906 if (!msm_bedais[be_index].active ||
907 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
908 continue;
909
910 session_id = fe_dai_map[fe_id][session_type].strm_id;
911
912 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
913 unsigned long copp =
914 session_copp_map[fe_id][session_type][be_index];
915 if (!test_bit(idx, &copp))
916 continue;
917 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
918 session_id, ip_channel_cnt,
919 op_channel_cnt, ch_wght_coeff,
920 session_type, stream_type);
921 if (rc < 0)
922 pr_err("%s: err setting channel mix config\n",
923 __func__);
924 }
925 }
926
927 return 0;
928}
929EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
930
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530931int msm_pcm_routing_reg_stream_app_type_cfg(
932 int fedai_id, int session_type, int be_id,
933 struct msm_pcm_stream_app_type_cfg *cfg_data)
934{
935 int ret = 0;
936
937 if (cfg_data == NULL) {
938 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
939 ret = -EINVAL;
940 goto done;
941 }
942
943 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
944 __func__, fedai_id, session_type, be_id,
945 cfg_data->app_type, cfg_data->acdb_dev_id,
946 cfg_data->sample_rate);
947
948 if (!is_mm_lsm_fe_id(fedai_id)) {
949 pr_err("%s: Invalid machine driver ID %d\n",
950 __func__, fedai_id);
951 ret = -EINVAL;
952 goto done;
953 }
954 if (session_type != SESSION_TYPE_RX &&
955 session_type != SESSION_TYPE_TX) {
956 pr_err("%s: Invalid session type %d\n",
957 __func__, session_type);
958 ret = -EINVAL;
959 goto done;
960 }
961 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
962 pr_err("%s: Received out of bounds be_id %d\n",
963 __func__, be_id);
964 ret = -EINVAL;
965 goto done;
966 }
967
968 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
969
970 /*
971 * Store the BE ID of the configuration information set as the latest so
972 * the get mixer control knows what to return.
973 */
974 last_be_id_configured[fedai_id][session_type] = be_id;
975
976done:
977 return ret;
978}
979EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
980
981/**
982 * msm_pcm_routing_get_stream_app_type_cfg
983 *
984 * Receives fedai_id, session_type, be_id, and populates app_type,
985 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
986 * -EINVAL and does not alter passed values.
987 *
988 * fedai_id - Passed value, front end ID for which app type config is wanted
989 * session_type - Passed value, session type for which app type config
990 * is wanted
991 * be_id - Returned value, back end device id the app type config data is for
992 * cfg_data - Returned value, configuration data used by app type config
993 */
994int msm_pcm_routing_get_stream_app_type_cfg(
995 int fedai_id, int session_type, int *bedai_id,
996 struct msm_pcm_stream_app_type_cfg *cfg_data)
997{
998 int be_id;
999 int ret = 0;
1000
1001 if (bedai_id == NULL) {
1002 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1003 ret = -EINVAL;
1004 goto done;
1005 } else if (cfg_data == NULL) {
1006 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1007 ret = -EINVAL;
1008 goto done;
1009 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1010 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1011 ret = -EINVAL;
1012 goto done;
1013 } else if (session_type != SESSION_TYPE_RX &&
1014 session_type != SESSION_TYPE_TX) {
1015 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1016 ret = -EINVAL;
1017 goto done;
1018 }
1019
1020 be_id = last_be_id_configured[fedai_id][session_type];
1021 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1022 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1023 ret = -EINVAL;
1024 goto done;
1025 }
1026
1027 *bedai_id = be_id;
1028 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1029 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1030 __func__, fedai_id, session_type, *bedai_id,
1031 cfg_data->app_type, cfg_data->acdb_dev_id,
1032 cfg_data->sample_rate);
1033done:
1034 return ret;
1035}
1036EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1037
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301038static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1039 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301040{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301041 struct list_head *ptr, *next;
1042 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301043 pr_debug("%s\n", __func__);
1044
1045 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301046 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301047
1048 cal_block = list_entry(ptr,
1049 struct cal_block_data, list);
1050
Vikram Panduranga770b8382017-09-27 12:17:36 -07001051 if (cal_utils_is_cal_stale(cal_block))
1052 continue;
1053
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301054 if (((struct audio_cal_info_adm_top *)cal_block
1055 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301056 return cal_block;
1057 }
1058 }
1059 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1060 return NULL;
1061}
1062
1063static struct cal_block_data *msm_routing_find_topology(int path,
1064 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301065 int acdb_id,
1066 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301067{
1068 struct list_head *ptr, *next;
1069 struct cal_block_data *cal_block = NULL;
1070 struct audio_cal_info_adm_top *cal_info;
1071
1072 pr_debug("%s\n", __func__);
1073
1074 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301075 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301076
1077 cal_block = list_entry(ptr,
1078 struct cal_block_data, list);
1079
Vikram Panduranga770b8382017-09-27 12:17:36 -07001080 if (cal_utils_is_cal_stale(cal_block))
1081 continue;
1082
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301083 cal_info = (struct audio_cal_info_adm_top *)
1084 cal_block->cal_info;
1085 if ((cal_info->path == path) &&
1086 (cal_info->app_type == app_type) &&
1087 (cal_info->acdb_id == acdb_id)) {
1088 return cal_block;
1089 }
1090 }
1091 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1092 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001093 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301094}
1095
Vikram Panduranga770b8382017-09-27 12:17:36 -07001096/*
1097 * Retrieving cal_block will mark cal_block as stale.
1098 * Hence it cannot be reused or resent unless the flag
1099 * is reset.
1100 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301101static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1102 int be_id)
1103{
1104 int topology = NULL_COPP_TOPOLOGY;
1105 struct cal_block_data *cal_block = NULL;
1106 int app_type = 0, acdb_dev_id = 0;
1107
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301108 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1109 __func__, fedai_id, session_type, be_id);
1110
1111 if (cal_data == NULL)
1112 goto done;
1113
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301114 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1115 acdb_dev_id =
1116 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1117
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301118 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301119 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301120 acdb_dev_id,
1121 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001122 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301123 topology = ((struct audio_cal_info_adm_top *)
1124 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001125 cal_utils_mark_cal_used(cal_block);
1126 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1127 } else {
1128 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301129
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301130 pr_debug("%s: Check for LSM topology\n", __func__);
1131 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1132 cal_block = msm_routing_find_topology(session_type, app_type,
1133 acdb_dev_id,
1134 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001135 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301136 topology = ((struct audio_cal_info_adm_top *)
1137 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001138 cal_utils_mark_cal_used(cal_block);
1139 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301140 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1141 }
1142
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301143done:
1144 pr_debug("%s: Using topology %d\n", __func__, topology);
1145 return topology;
1146}
1147
1148static uint8_t is_be_dai_extproc(int be_dai)
1149{
1150 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1151 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1152 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1153 return 1;
1154 else
1155 return 0;
1156}
1157
1158static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1159 int path_type, int perf_mode,
1160 uint32_t passthr_mode)
1161{
1162 int i, port_type, j, num_copps = 0;
1163 struct route_payload payload;
1164
1165 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1166 path_type == ADM_PATH_COMPRESSED_RX) ?
1167 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1168
1169 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1170 if (!is_be_dai_extproc(i) &&
1171 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1172 (msm_bedais[i].active) &&
1173 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301174 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301175 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1176 unsigned long copp =
1177 session_copp_map[fedai_id][sess_type][i];
1178 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301179 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301180 payload.copp_idx[num_copps] = j;
1181 payload.app_type[num_copps] =
1182 fe_dai_app_type_cfg
1183 [fedai_id][sess_type][i]
1184 .app_type;
1185 payload.acdb_dev_id[num_copps] =
1186 fe_dai_app_type_cfg
1187 [fedai_id][sess_type][i]
1188 .acdb_dev_id;
1189 payload.sample_rate[num_copps] =
1190 fe_dai_app_type_cfg
1191 [fedai_id][sess_type][i]
1192 .sample_rate;
1193 num_copps++;
1194 }
1195 }
1196 }
1197 }
1198
1199 if (num_copps) {
1200 payload.num_copps = num_copps;
1201 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1202 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1203 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1204 }
1205}
1206
1207void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1208 int stream_type)
1209{
1210 int i, session_type, path_type, port_type;
1211 u32 mode = 0;
1212
1213 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1214 /* bad ID assigned in machine driver */
1215 pr_err("%s: bad MM ID\n", __func__);
1216 return;
1217 }
1218
1219 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1220 session_type = SESSION_TYPE_RX;
1221 path_type = ADM_PATH_PLAYBACK;
1222 port_type = MSM_AFE_PORT_TYPE_RX;
1223 } else {
1224 session_type = SESSION_TYPE_TX;
1225 path_type = ADM_PATH_LIVE_REC;
1226 port_type = MSM_AFE_PORT_TYPE_TX;
1227 }
1228
1229 mutex_lock(&routing_lock);
1230
1231 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1232 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1233 if (!is_be_dai_extproc(i) &&
1234 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1235 (msm_bedais[i].active) &&
1236 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1237 mode = afe_get_port_type(msm_bedais[i].port_id);
1238 adm_connect_afe_port(mode, dspst_id,
1239 msm_bedais[i].port_id);
1240 break;
1241 }
1242 }
1243 mutex_unlock(&routing_lock);
1244}
1245
1246static bool route_check_fe_id_adm_support(int fe_id)
1247{
1248 bool rc = true;
1249
1250 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1251 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1252 /* fe id is listen while port is set to afe */
1253 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1254 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1255 __func__, fe_id, lsm_port_index);
1256 rc = false;
1257 }
1258 }
1259
1260 return rc;
1261}
1262
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001263/*
1264 * msm_pcm_routing_get_pp_ch_cnt:
1265 * Read the processed channel count
1266 *
1267 * @fe_id: Front end ID
1268 * @session_type: Inidicates RX or TX session type
1269 */
1270int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1271{
1272 struct msm_pcm_stream_app_type_cfg cfg_data;
1273 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301274 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001275
1276 memset(&cfg_data, 0, sizeof(cfg_data));
1277
1278 if (!is_mm_lsm_fe_id(fe_id)) {
1279 pr_err("%s: bad MM ID\n", __func__);
1280 return -EINVAL;
1281 }
1282
1283 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1284 &be_id, &cfg_data);
1285 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301286 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001287 return ret;
1288 }
1289
1290 app_type = cfg_data.app_type;
1291 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1292 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1293}
1294EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1295
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301296int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1297 int dspst_id, int stream_type,
1298 uint32_t passthr_mode)
1299{
1300 int i, j, session_type, path_type, port_type, topology;
1301 int num_copps = 0;
1302 struct route_payload payload;
1303 u32 channels, sample_rate;
1304 u16 bit_width = 16;
1305 bool is_lsm;
1306
1307 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1308 __func__, fe_id, perf_mode, dspst_id,
1309 stream_type, passthr_mode);
1310 if (!is_mm_lsm_fe_id(fe_id)) {
1311 /* bad ID assigned in machine driver */
1312 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1313 return -EINVAL;
1314 }
1315
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301316 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1317 session_type = SESSION_TYPE_RX;
1318 if (passthr_mode != LEGACY_PCM)
1319 path_type = ADM_PATH_COMPRESSED_RX;
1320 else
1321 path_type = ADM_PATH_PLAYBACK;
1322 port_type = MSM_AFE_PORT_TYPE_RX;
1323 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1324 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301325 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301326 path_type = ADM_PATH_COMPRESSED_TX;
1327 else
1328 path_type = ADM_PATH_LIVE_REC;
1329 port_type = MSM_AFE_PORT_TYPE_TX;
1330 } else {
1331 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1332 return -EINVAL;
1333 }
1334
1335 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1336 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1337 mutex_lock(&routing_lock);
1338
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301339 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301340 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1341 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1342 if (!route_check_fe_id_adm_support(fe_id)) {
1343 /* ignore adm open if not supported for fe_id */
1344 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1345 mutex_unlock(&routing_lock);
1346 return 0;
1347 }
1348
1349 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301350 /* re-enable EQ if active */
1351 msm_qti_pp_send_eq_values(fe_id);
1352 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301353 if (!is_be_dai_extproc(i) &&
1354 (afe_get_port_type(msm_bedais[i].port_id) ==
1355 port_type) &&
1356 (msm_bedais[i].active) &&
1357 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1358 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301359 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301360
1361 /*
1362 * check if ADM needs to be configured with different
1363 * channel mapping than backend
1364 */
1365 if (!msm_bedais[i].adm_override_ch)
1366 channels = msm_bedais[i].channel;
1367 else
1368 channels = msm_bedais[i].adm_override_ch;
1369
1370 bit_width = msm_routing_get_bit_width(
1371 msm_bedais[i].format);
1372 app_type =
1373 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1374 if (app_type && is_lsm) {
1375 app_type_idx =
1376 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1377 sample_rate =
1378 fe_dai_app_type_cfg[fe_id][session_type][i]
1379 .sample_rate;
1380 bit_width =
1381 lsm_app_type_cfg[app_type_idx].bit_width;
1382 } else if (app_type) {
1383 app_type_idx =
1384 msm_pcm_routing_get_app_type_idx(
1385 app_type);
1386 sample_rate =
1387 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1388 bit_width =
1389 app_type_cfg[app_type_idx].bit_width;
1390 } else {
1391 sample_rate = msm_bedais[i].sample_rate;
1392 }
1393 acdb_dev_id =
1394 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1395 topology = msm_routing_get_adm_topology(fe_id,
1396 session_type,
1397 i);
1398 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1399 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001400 COMPRESSED_PASSTHROUGH_GEN)
1401 || (passthr_mode ==
1402 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301403 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1404 pr_debug("%s: Before adm open topology %d\n", __func__,
1405 topology);
1406
1407 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301408 adm_open(port_id, path_type, sample_rate,
1409 channels, topology, perf_mode,
1410 bit_width, app_type, acdb_dev_id,
1411 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301412 if ((copp_idx < 0) ||
1413 (copp_idx >= MAX_COPPS_PER_PORT)) {
1414 pr_err("%s:adm open failed coppid:%d\n",
1415 __func__, copp_idx);
1416 mutex_unlock(&routing_lock);
1417 return -EINVAL;
1418 }
1419 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1420 __func__, fe_id, session_type, i);
1421 set_bit(copp_idx,
1422 &session_copp_map[fe_id][session_type][i]);
1423
1424 if (msm_is_resample_needed(
1425 sample_rate,
1426 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301427 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301428 msm_bedais[i].sample_rate);
1429
1430 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1431 unsigned long copp =
1432 session_copp_map[fe_id][session_type][i];
1433 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301434 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301435 payload.copp_idx[num_copps] = j;
1436 payload.app_type[num_copps] =
1437 fe_dai_app_type_cfg
1438 [fe_id][session_type][i]
1439 .app_type;
1440 payload.acdb_dev_id[num_copps] =
1441 fe_dai_app_type_cfg
1442 [fe_id][session_type][i]
1443 .acdb_dev_id;
1444 payload.sample_rate[num_copps] =
1445 fe_dai_app_type_cfg
1446 [fe_id][session_type][i]
1447 .sample_rate;
1448 num_copps++;
1449 }
1450 }
1451 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001452 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301453 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301454 msm_routing_send_device_pp_params(port_id,
1455 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301456 }
1457 }
1458 if (num_copps) {
1459 payload.num_copps = num_copps;
1460 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1461 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1462 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1463 }
1464 mutex_unlock(&routing_lock);
1465 return 0;
1466}
1467
1468static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1469{
1470 u32 session_id;
1471
1472 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301473 case MSM_FRONTEND_DAI_QCHAT:
1474 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1475 break;
1476 case MSM_FRONTEND_DAI_VOIP:
1477 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1478 break;
1479 case MSM_FRONTEND_DAI_VOICEMMODE1:
1480 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1481 break;
1482 case MSM_FRONTEND_DAI_VOICEMMODE2:
1483 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1484 break;
1485 default:
1486 session_id = 0;
1487 }
1488
1489 pr_debug("%s session_id 0x%x", __func__, session_id);
1490 return session_id;
1491}
1492
1493static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1494 int dspst_id, int stream_type)
1495{
1496 int copp_idx = 0;
1497 int sess_type = 0;
1498 int i = 0, j = 0, be_id;
1499 int ret = 0;
1500
1501 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1502 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1503 return 0;
1504 }
1505
1506 if (!(channel_mixer[fe_id].enable)) {
1507 pr_debug("%s: channel mixer not enabled for FE %d\n",
1508 __func__, fe_id);
1509 return 0;
1510 }
1511
1512 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1513 sess_type = SESSION_TYPE_RX;
1514 else
1515 sess_type = SESSION_TYPE_TX;
1516
1517 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1518 ++i) {
1519 be_id = channel_input[fe_id][i] - 1;
1520 channel_mixer[fe_id].input_channels[i] =
1521 msm_bedais[be_id].channel;
1522
1523 if ((msm_bedais[be_id].active) &&
1524 test_bit(fe_id,
1525 &msm_bedais[be_id].fe_sessions[0])) {
1526 unsigned long copp =
1527 session_copp_map[fe_id][sess_type][be_id];
1528 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1529 if (test_bit(j, &copp)) {
1530 copp_idx = j;
1531 break;
1532 }
1533 }
1534
1535 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1536 __func__,
1537 fe_id, be_id, msm_bedais[be_id].channel,
1538 copp_idx);
1539 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001540 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301541 copp_idx, dspst_id, sess_type,
1542 channel_mixer + fe_id, i);
1543 }
1544 }
1545
1546 return ret;
1547}
1548
1549int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1550 int dspst_id, int stream_type)
1551{
1552 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1553 struct route_payload payload;
1554 u32 channels, sample_rate;
1555 uint16_t bits_per_sample = 16;
1556 uint32_t passthr_mode = LEGACY_PCM;
1557 int ret = 0;
1558
1559 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1560 /* bad ID assigned in machine driver */
1561 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1562 return -EINVAL;
1563 }
1564
1565 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1566 session_type = SESSION_TYPE_RX;
1567 path_type = ADM_PATH_PLAYBACK;
1568 port_type = MSM_AFE_PORT_TYPE_RX;
1569 } else {
1570 session_type = SESSION_TYPE_TX;
1571 path_type = ADM_PATH_LIVE_REC;
1572 port_type = MSM_AFE_PORT_TYPE_TX;
1573 }
1574
1575 mutex_lock(&routing_lock);
1576
1577 payload.num_copps = 0; /* only RX needs to use payload */
1578 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1579 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301580 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301581
1582 /* re-enable EQ if active */
1583 msm_qti_pp_send_eq_values(fedai_id);
1584 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1585 if (!is_be_dai_extproc(i) &&
1586 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1587 (msm_bedais[i].active) &&
1588 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1589 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301590 int port_id = get_port_id(msm_bedais[i].port_id);
1591
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301592 /*
1593 * check if ADM needs to be configured with different
1594 * channel mapping than backend
1595 */
1596 if (!msm_bedais[i].adm_override_ch)
1597 channels = msm_bedais[i].channel;
1598 else
1599 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301600
1601 bits_per_sample = msm_routing_get_bit_width(
1602 msm_bedais[i].format);
1603
1604 app_type =
1605 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1606 if (app_type) {
1607 app_type_idx =
1608 msm_pcm_routing_get_app_type_idx(app_type);
1609 sample_rate =
1610 fe_dai_app_type_cfg[fedai_id][session_type][i]
1611 .sample_rate;
1612 bits_per_sample =
1613 app_type_cfg[app_type_idx].bit_width;
1614 } else
1615 sample_rate = msm_bedais[i].sample_rate;
1616
1617 acdb_dev_id =
1618 fe_dai_app_type_cfg[fedai_id][session_type][i]
1619 .acdb_dev_id;
1620 topology = msm_routing_get_adm_topology(fedai_id,
1621 session_type,
1622 i);
Surendar Karkae7507512018-07-20 15:46:54 +05301623 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301624 sample_rate, channels, topology,
1625 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301626 app_type, acdb_dev_id,
1627 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301628 if ((copp_idx < 0) ||
1629 (copp_idx >= MAX_COPPS_PER_PORT)) {
1630 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001631 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301632 mutex_unlock(&routing_lock);
1633 return -EINVAL;
1634 }
1635 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1636 __func__, fedai_id, session_type, i);
1637 set_bit(copp_idx,
1638 &session_copp_map[fedai_id][session_type][i]);
1639
1640 if (msm_is_resample_needed(
1641 sample_rate,
1642 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301643 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301644 msm_bedais[i].sample_rate);
1645
1646 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1647 unsigned long copp =
1648 session_copp_map[fedai_id][session_type][i];
1649 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301650 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301651 payload.copp_idx[num_copps] = j;
1652 payload.app_type[num_copps] =
1653 fe_dai_app_type_cfg
1654 [fedai_id][session_type]
1655 [i].app_type;
1656 payload.acdb_dev_id[num_copps] =
1657 fe_dai_app_type_cfg
1658 [fedai_id][session_type]
1659 [i].acdb_dev_id;
1660 payload.sample_rate[num_copps] =
1661 fe_dai_app_type_cfg
1662 [fedai_id][session_type]
1663 [i].sample_rate;
1664 num_copps++;
1665 }
1666 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301667 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301668 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1669 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301670 }
1671 }
1672 if (num_copps) {
1673 payload.num_copps = num_copps;
1674 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1675 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1676 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1677 }
1678
1679 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1680 dspst_id, stream_type);
1681 mutex_unlock(&routing_lock);
1682 return ret;
1683}
1684
1685int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1686 int dspst_id, int stream_type,
1687 struct msm_pcm_routing_evt event_info)
1688{
1689 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1690 stream_type)) {
1691 pr_err("%s: failed to reg phy stream\n", __func__);
1692 return -EINVAL;
1693 }
1694
1695 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1696 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1697 else
1698 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1699 return 0;
1700}
1701
1702void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1703{
Surendar Karkae7507512018-07-20 15:46:54 +05301704 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301705 struct msm_pcm_routing_fdai_data *fdai;
1706
1707 if (!is_mm_lsm_fe_id(fedai_id)) {
1708 /* bad ID assigned in machine driver */
1709 pr_err("%s: bad MM ID\n", __func__);
1710 return;
1711 }
1712
1713 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1714 port_type = MSM_AFE_PORT_TYPE_RX;
1715 session_type = SESSION_TYPE_RX;
1716 path_type = ADM_PATH_PLAYBACK;
1717 } else {
1718 port_type = MSM_AFE_PORT_TYPE_TX;
1719 session_type = SESSION_TYPE_TX;
1720 path_type = ADM_PATH_LIVE_REC;
1721 }
1722
1723 mutex_lock(&routing_lock);
1724 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1725 if (!is_be_dai_extproc(i) &&
1726 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1727 (msm_bedais[i].active) &&
1728 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1729 int idx;
1730 unsigned long copp =
1731 session_copp_map[fedai_id][session_type][i];
1732 fdai = &fe_dai_map[fedai_id][session_type];
1733
1734 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1735 if (test_bit(idx, &copp))
1736 break;
1737
1738 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1739 pr_debug("%s: copp idx is invalid, exiting\n",
1740 __func__);
1741 continue;
1742 }
Surendar Karkae7507512018-07-20 15:46:54 +05301743 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301744 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301745 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001746 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301747 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301748 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1749 __func__, copp, fedai_id, session_type, i);
1750 clear_bit(idx,
1751 &session_copp_map[fedai_id][session_type][i]);
1752 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1753 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1754 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301755 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301756 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301757 }
1758 }
1759
1760 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1761 fe_dai_map[fedai_id][session_type].be_srate = 0;
1762 mutex_unlock(&routing_lock);
1763}
1764
1765/* Check if FE/BE route is set */
1766static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1767{
1768 bool rc = false;
1769
1770 if (!is_mm_lsm_fe_id(fe_id)) {
1771 /* recheck FE ID in the mixer control defined in this file */
1772 pr_err("%s: bad MM ID\n", __func__);
1773 return rc;
1774 }
1775
1776 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1777 rc = true;
1778
1779 return rc;
1780}
1781
1782static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1783{
1784 int session_type, path_type, topology;
1785 u32 channels, sample_rate;
1786 uint16_t bits_per_sample = 16;
1787 struct msm_pcm_routing_fdai_data *fdai;
1788 uint32_t passthr_mode;
1789 bool is_lsm;
1790
1791 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1792
1793 if (!is_mm_lsm_fe_id(val)) {
1794 /* recheck FE ID in the mixer control defined in this file */
1795 pr_err("%s: bad MM ID\n", __func__);
1796 return;
1797 }
1798
1799 if (!route_check_fe_id_adm_support(val)) {
1800 /* ignore adm open if not supported for fe_id */
1801 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1802 return;
1803 }
1804
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301805 session_type =
1806 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
1807 SESSION_TYPE_RX : SESSION_TYPE_TX;
1808 fdai = &fe_dai_map[val][session_type];
1809 passthr_mode = fdai->passthr_mode;
1810 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301811 if (passthr_mode != LEGACY_PCM)
1812 path_type = ADM_PATH_COMPRESSED_RX;
1813 else
1814 path_type = ADM_PATH_PLAYBACK;
1815 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02001816 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301817 path_type = ADM_PATH_COMPRESSED_TX;
1818 else
1819 path_type = ADM_PATH_LIVE_REC;
1820 }
1821 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1822 (val <= MSM_FRONTEND_DAI_LSM8);
1823
1824 mutex_lock(&routing_lock);
1825 if (set) {
1826 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1827 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1828 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1829 voc_start_playback(set, msm_bedais[reg].port_id);
1830
1831 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301832 if (msm_bedais[reg].active && fdai->strm_id !=
1833 INVALID_SESSION) {
1834 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301835 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301836 /*
1837 * check if ADM needs to be configured with different
1838 * channel mapping than backend
1839 */
1840 if (!msm_bedais[reg].adm_override_ch)
1841 channels = msm_bedais[reg].channel;
1842 else
1843 channels = msm_bedais[reg].adm_override_ch;
1844 if (session_type == SESSION_TYPE_TX &&
1845 fdai->be_srate &&
1846 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1847 pr_debug("%s: flush strm %d diff BE rates\n",
1848 __func__, fdai->strm_id);
1849
1850 if (fdai->event_info.event_func)
1851 fdai->event_info.event_func(
1852 MSM_PCM_RT_EVT_BUF_RECFG,
1853 fdai->event_info.priv_data);
1854 fdai->be_srate = 0; /* might not need it */
1855 }
1856
1857 bits_per_sample = msm_routing_get_bit_width(
1858 msm_bedais[reg].format);
1859
1860 app_type =
1861 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1862 if (app_type && is_lsm) {
1863 app_type_idx =
1864 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1865 sample_rate =
1866 fe_dai_app_type_cfg[val][session_type][reg]
1867 .sample_rate;
1868 bits_per_sample =
1869 lsm_app_type_cfg[app_type_idx].bit_width;
1870 } else if (app_type) {
1871 app_type_idx =
1872 msm_pcm_routing_get_app_type_idx(app_type);
1873 sample_rate =
1874 fe_dai_app_type_cfg[val][session_type][reg]
1875 .sample_rate;
1876 bits_per_sample =
1877 app_type_cfg[app_type_idx].bit_width;
1878 } else
1879 sample_rate = msm_bedais[reg].sample_rate;
1880
1881 topology = msm_routing_get_adm_topology(val,
1882 session_type,
1883 reg);
1884 acdb_dev_id =
1885 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301886 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301887 sample_rate, channels, topology,
1888 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301889 app_type, acdb_dev_id,
1890 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301891 if ((copp_idx < 0) ||
1892 (copp_idx >= MAX_COPPS_PER_PORT)) {
1893 pr_err("%s: adm open failed\n", __func__);
1894 mutex_unlock(&routing_lock);
1895 return;
1896 }
1897 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1898 __func__, val, session_type, reg);
1899 set_bit(copp_idx,
1900 &session_copp_map[val][session_type][reg]);
1901
1902 if (msm_is_resample_needed(
1903 sample_rate,
1904 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301905 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301906 msm_bedais[reg].sample_rate);
1907
1908 if (session_type == SESSION_TYPE_RX &&
1909 fdai->event_info.event_func)
1910 fdai->event_info.event_func(
1911 MSM_PCM_RT_EVT_DEVSWITCH,
1912 fdai->event_info.priv_data);
1913
1914 msm_pcm_routing_build_matrix(val, session_type,
1915 path_type,
1916 fdai->perf_mode,
1917 passthr_mode);
1918 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1919 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301920 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1921 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301922 }
1923 } else {
1924 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1925 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1926 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1927 voc_start_playback(set, msm_bedais[reg].port_id);
1928 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301929 if (msm_bedais[reg].active && fdai->strm_id !=
1930 INVALID_SESSION) {
1931 int idx;
1932 int port_id;
1933 unsigned long copp =
1934 session_copp_map[val][session_type][reg];
1935 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1936 if (test_bit(idx, &copp))
1937 break;
1938
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07001939 if (idx >= MAX_COPPS_PER_PORT) {
1940 pr_debug("%s: copp idx is invalid, exiting\n",
1941 __func__);
1942 mutex_unlock(&routing_lock);
1943 return;
1944 }
Surendar Karkae7507512018-07-20 15:46:54 +05301945 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301946 topology = adm_get_topology_for_port_copp_idx(port_id,
1947 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001948 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301949 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301950 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1951 __func__, copp, val, session_type, reg,
1952 topology);
1953 clear_bit(idx,
1954 &session_copp_map[val][session_type][reg]);
1955 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1956 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1957 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1958 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301959 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301960 msm_pcm_routing_build_matrix(val, session_type,
1961 path_type,
1962 fdai->perf_mode,
1963 passthr_mode);
1964 }
1965 }
1966 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1967 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1968 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1969
1970 mutex_unlock(&routing_lock);
1971}
1972
1973static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1974 struct snd_ctl_elem_value *ucontrol)
1975{
1976 struct soc_mixer_control *mc =
1977 (struct soc_mixer_control *)kcontrol->private_value;
1978
Meng Wang05d5e9a2018-03-28 16:45:03 +08001979 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301980 ucontrol->value.integer.value[0] = 1;
1981 else
1982 ucontrol->value.integer.value[0] = 0;
1983
Meng Wang05d5e9a2018-03-28 16:45:03 +08001984 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301985 ucontrol->value.integer.value[0]);
1986
1987 return 0;
1988}
1989
1990static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1991 struct snd_ctl_elem_value *ucontrol)
1992{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301993 struct snd_soc_dapm_widget *widget =
1994 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301995 struct soc_mixer_control *mc =
1996 (struct soc_mixer_control *)kcontrol->private_value;
1997 struct snd_soc_dapm_update *update = NULL;
1998
1999 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002000 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2001 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302002 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2003 update);
2004 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002005 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2006 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302007 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2008 update);
2009 }
2010
2011 return 1;
2012}
2013
2014static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2015 struct snd_ctl_elem_value *ucontrol)
2016{
2017 struct soc_mixer_control *mc =
2018 (struct soc_mixer_control *)kcontrol->private_value;
2019
Meng Wang05d5e9a2018-03-28 16:45:03 +08002020 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302021 ucontrol->value.integer.value[0] = 1;
2022 else
2023 ucontrol->value.integer.value[0] = 0;
2024
Meng Wang05d5e9a2018-03-28 16:45:03 +08002025 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302026 ucontrol->value.integer.value[0]);
2027
2028 return 0;
2029}
2030
2031static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2032 struct snd_ctl_elem_value *ucontrol)
2033{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302034 struct snd_soc_dapm_widget *widget =
2035 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302036 struct soc_mixer_control *mc =
2037 (struct soc_mixer_control *)kcontrol->private_value;
2038 struct snd_soc_dapm_update *update = NULL;
2039
Meng Wang05d5e9a2018-03-28 16:45:03 +08002040 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302041 ucontrol->value.integer.value[0]);
2042
2043 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002044 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2045 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302046 snd_soc_dapm_mixer_update_power(widget->dapm,
2047 kcontrol, 1, update);
2048 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002049 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2050 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302051 snd_soc_dapm_mixer_update_power(widget->dapm,
2052 kcontrol, 0, update);
2053 }
2054
2055 return 1;
2056}
2057
2058static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2059{
2060 u32 session_id = 0;
2061 u16 path_type;
2062 struct media_format_info voc_be_media_format;
2063
2064 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2065
2066 session_id = msm_pcm_routing_get_voc_sessionid(val);
2067
2068 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2069 __func__, val, session_id);
2070
2071 mutex_lock(&routing_lock);
2072
2073 if (set)
2074 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2075 else
2076 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2077
2078 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2079 afe_get_port_type(msm_bedais[reg].port_id) ==
2080 MSM_AFE_PORT_TYPE_RX) {
2081 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2082 __func__, set, msm_bedais[reg].port_id);
2083 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2084 }
2085
2086 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2087 MSM_AFE_PORT_TYPE_RX)
2088 path_type = RX_PATH;
2089 else
2090 path_type = TX_PATH;
2091
2092 if (set) {
2093 if (msm_bedais[reg].active) {
2094 voc_set_route_flag(session_id, path_type, 1);
2095
2096 memset(&voc_be_media_format, 0,
2097 sizeof(struct media_format_info));
2098
2099 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2100 voc_be_media_format.num_channels =
2101 msm_bedais[reg].channel;
2102 voc_be_media_format.sample_rate =
2103 msm_bedais[reg].sample_rate;
2104 voc_be_media_format.bits_per_sample =
2105 msm_bedais[reg].format;
2106 /* Defaulting this to 1 for voice call usecases */
2107 voc_be_media_format.channel_mapping[0] = 1;
2108
2109 voc_set_device_config(session_id, path_type,
2110 &voc_be_media_format);
2111
2112 if (voc_get_route_flag(session_id, TX_PATH) &&
2113 voc_get_route_flag(session_id, RX_PATH))
2114 voc_enable_device(session_id);
2115 } else {
2116 pr_debug("%s BE is not active\n", __func__);
2117 }
2118 } else {
2119 voc_set_route_flag(session_id, path_type, 0);
2120 voc_disable_device(session_id);
2121 }
2122
2123 mutex_unlock(&routing_lock);
2124
2125}
2126
2127static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2128 struct snd_ctl_elem_value *ucontrol)
2129{
2130 struct soc_mixer_control *mc =
2131 (struct soc_mixer_control *)kcontrol->private_value;
2132
2133 mutex_lock(&routing_lock);
2134
Meng Wang05d5e9a2018-03-28 16:45:03 +08002135 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302136 ucontrol->value.integer.value[0] = 1;
2137 else
2138 ucontrol->value.integer.value[0] = 0;
2139
2140 mutex_unlock(&routing_lock);
2141
Meng Wang05d5e9a2018-03-28 16:45:03 +08002142 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302143 ucontrol->value.integer.value[0]);
2144
2145 return 0;
2146}
2147
2148static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2149 struct snd_ctl_elem_value *ucontrol)
2150{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302151 struct snd_soc_dapm_widget *widget =
2152 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302153 struct soc_mixer_control *mc =
2154 (struct soc_mixer_control *)kcontrol->private_value;
2155 struct snd_soc_dapm_update *update = NULL;
2156
2157 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002158 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302159 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2160 update);
2161 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002162 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302163 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2164 update);
2165 }
2166
2167 return 1;
2168}
2169
2170static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2171 struct snd_ctl_elem_value *ucontrol)
2172{
2173 struct soc_mixer_control *mc =
2174 (struct soc_mixer_control *)kcontrol->private_value;
2175
2176 mutex_lock(&routing_lock);
2177
Meng Wang05d5e9a2018-03-28 16:45:03 +08002178 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302179 ucontrol->value.integer.value[0] = 1;
2180 else
2181 ucontrol->value.integer.value[0] = 0;
2182
2183 mutex_unlock(&routing_lock);
2184
Meng Wang05d5e9a2018-03-28 16:45:03 +08002185 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302186 ucontrol->value.integer.value[0]);
2187
2188 return 0;
2189}
2190
2191static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2192 struct snd_ctl_elem_value *ucontrol)
2193{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302194 struct snd_soc_dapm_widget *widget =
2195 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302196 struct soc_mixer_control *mc =
2197 (struct soc_mixer_control *)kcontrol->private_value;
2198 struct snd_soc_dapm_update *update = NULL;
2199
2200 if (ucontrol->value.integer.value[0]) {
2201 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002202 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302203 mutex_unlock(&routing_lock);
2204
2205 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2206 update);
2207 } else {
2208 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002209 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302210 mutex_unlock(&routing_lock);
2211
2212 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2213 update);
2214 }
2215
Meng Wang05d5e9a2018-03-28 16:45:03 +08002216 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302217 ucontrol->value.integer.value[0]);
2218
2219 return 1;
2220}
2221
2222/*
2223 * Return the mapping between port ID and backend ID to enable the AFE callback
2224 * to determine the acdb_dev_id from the port id
2225 */
2226int msm_pcm_get_be_id_from_port_id(int port_id)
2227{
2228 int i;
2229 int be_id = -EINVAL;
2230
2231 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2232 if (msm_bedais[i].port_id == port_id) {
2233 be_id = i;
2234 break;
2235 }
2236 }
2237
2238 return be_id;
2239}
2240
2241/*
2242 * Return the registered dev_acdb_id given a port ID to enable identifying the
2243 * correct AFE calibration information by comparing the header information.
2244 */
2245static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2246{
2247 int acdb_id = -EINVAL;
2248 int i = 0;
2249 int session;
2250 int port_type = afe_get_port_type(port_id);
2251 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2252
2253 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2254 __func__, port_id, be_id, port_type);
2255
2256 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2257 session = SESSION_TYPE_TX;
2258 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2259 session = SESSION_TYPE_RX;
2260 } else {
2261 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2262 acdb_id = -EINVAL;
2263 goto exit;
2264 }
2265
2266 if (be_id < 0) {
2267 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2268 goto exit;
2269 }
2270
2271 mutex_lock(&routing_lock);
2272 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2273 MSM_FRONTEND_DAI_MAX);
2274 if (i < MSM_FRONTEND_DAI_MAX)
2275 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2276
2277 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2278 __func__, i, session, be_id, acdb_id);
2279 mutex_unlock(&routing_lock);
2280exit:
2281 return acdb_id;
2282}
2283
2284static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2285 struct snd_ctl_elem_value *ucontrol)
2286{
2287 ucontrol->value.integer.value[0] = fm_switch_enable;
2288 pr_debug("%s: FM Switch enable %ld\n", __func__,
2289 ucontrol->value.integer.value[0]);
2290 return 0;
2291}
2292
2293static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2294 struct snd_ctl_elem_value *ucontrol)
2295{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302296 struct snd_soc_dapm_widget *widget =
2297 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302298 struct snd_soc_dapm_update *update = NULL;
2299
2300 pr_debug("%s: FM Switch enable %ld\n", __func__,
2301 ucontrol->value.integer.value[0]);
2302 if (ucontrol->value.integer.value[0])
2303 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2304 update);
2305 else
2306 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2307 update);
2308 fm_switch_enable = ucontrol->value.integer.value[0];
2309 return 1;
2310}
2311
2312static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2313 struct snd_ctl_elem_value *ucontrol)
2314{
2315 ucontrol->value.integer.value[0] = hfp_switch_enable;
2316 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2317 ucontrol->value.integer.value[0]);
2318 return 0;
2319}
2320
2321static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2322 struct snd_ctl_elem_value *ucontrol)
2323{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302324 struct snd_soc_dapm_widget *widget =
2325 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302326 struct snd_soc_dapm_update *update = NULL;
2327
2328 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2329 ucontrol->value.integer.value[0]);
2330 if (ucontrol->value.integer.value[0])
2331 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2332 1, update);
2333 else
2334 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2335 0, update);
2336 hfp_switch_enable = ucontrol->value.integer.value[0];
2337 return 1;
2338}
2339
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002340static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2341 struct snd_ctl_elem_value *ucontrol)
2342{
2343 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2344 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2345 ucontrol->value.integer.value[0]);
2346 return 0;
2347}
2348
2349static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2350 struct snd_ctl_elem_value *ucontrol)
2351{
2352 struct snd_soc_dapm_widget *widget =
2353 snd_soc_dapm_kcontrol_widget(kcontrol);
2354 struct snd_soc_dapm_update *update = NULL;
2355
2356 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2357 ucontrol->value.integer.value[0]);
2358 a2dp_switch_enable = ucontrol->value.integer.value[0];
2359 if (a2dp_switch_enable)
2360 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2361 1, update);
2362 else
2363 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2364 0, update);
2365 return 1;
2366}
2367
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302368static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2369 struct snd_ctl_elem_value *ucontrol)
2370{
2371 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2372 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2373 ucontrol->value.integer.value[0]);
2374 return 0;
2375}
2376
2377static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2378 struct snd_ctl_elem_value *ucontrol)
2379{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302380 struct snd_soc_dapm_widget *widget =
2381 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302382 struct snd_soc_dapm_update *update = NULL;
2383
2384 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2385 ucontrol->value.integer.value[0]);
2386 if (ucontrol->value.integer.value[0])
2387 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2388 update);
2389 else
2390 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2391 update);
2392 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2393 return 1;
2394}
2395
2396static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2397 struct snd_ctl_elem_value *ucontrol)
2398{
2399 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2400 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2401 ucontrol->value.integer.value[0]);
2402 return 0;
2403}
2404
2405static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2406 struct snd_ctl_elem_value *ucontrol)
2407{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302408 struct snd_soc_dapm_widget *widget =
2409 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302410 struct snd_soc_dapm_update *update = NULL;
2411
2412 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2413 ucontrol->value.integer.value[0]);
2414 if (ucontrol->value.integer.value[0])
2415 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2416 update);
2417 else
2418 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2419 update);
2420 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2421 return 1;
2422}
2423
2424static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2425 struct snd_ctl_elem_value *ucontrol)
2426{
2427 ucontrol->value.integer.value[0] = usb_switch_enable;
2428 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2429 ucontrol->value.integer.value[0]);
2430 return 0;
2431}
2432
2433static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2434 struct snd_ctl_elem_value *ucontrol)
2435{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302436 struct snd_soc_dapm_widget *widget =
2437 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302438 struct snd_soc_dapm_update *update = NULL;
2439
2440 pr_debug("%s: USB Switch enable %ld\n", __func__,
2441 ucontrol->value.integer.value[0]);
2442 if (ucontrol->value.integer.value[0])
2443 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2444 1, update);
2445 else
2446 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2447 0, update);
2448 usb_switch_enable = ucontrol->value.integer.value[0];
2449 return 1;
2450}
2451
2452static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2453 struct snd_ctl_elem_value *ucontrol)
2454{
2455 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2456 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2457 ucontrol->value.integer.value[0]);
2458 return 0;
2459}
2460
2461static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2462 struct snd_ctl_elem_value *ucontrol)
2463{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302464 struct snd_soc_dapm_widget *widget =
2465 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302466 struct snd_soc_dapm_update *update = NULL;
2467
2468 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2469 ucontrol->value.integer.value[0]);
2470 if (ucontrol->value.integer.value[0])
2471 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2472 update);
2473 else
2474 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2475 update);
2476 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2477 return 1;
2478}
2479
2480static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2481 struct snd_ctl_elem_value *ucontrol)
2482{
2483 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2484 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2485 ucontrol->value.integer.value[0]);
2486 return 0;
2487}
2488
2489static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2490 struct snd_ctl_elem_value *ucontrol)
2491{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302492 struct snd_soc_dapm_widget *widget =
2493 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302494 struct snd_soc_dapm_update *update = NULL;
2495
2496 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2497 ucontrol->value.integer.value[0]);
2498 if (ucontrol->value.integer.value[0])
2499 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2500 update);
2501 else
2502 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2503 update);
2504 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2505 return 1;
2506}
2507
2508static int msm_routing_get_tert_mi2s_switch_mixer(
2509 struct snd_kcontrol *kcontrol,
2510 struct snd_ctl_elem_value *ucontrol)
2511{
2512 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2513 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2514 ucontrol->value.integer.value[0]);
2515 return 0;
2516}
2517
2518static int msm_routing_put_tert_mi2s_switch_mixer(
2519 struct snd_kcontrol *kcontrol,
2520 struct snd_ctl_elem_value *ucontrol)
2521{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302522 struct snd_soc_dapm_widget *widget =
2523 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302524 struct snd_soc_dapm_update *update = NULL;
2525
2526 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2527 ucontrol->value.integer.value[0]);
2528 if (ucontrol->value.integer.value[0])
2529 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2530 update);
2531 else
2532 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2533 update);
2534 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2535 return 1;
2536}
2537
2538static int msm_routing_get_quat_mi2s_switch_mixer(
2539 struct snd_kcontrol *kcontrol,
2540 struct snd_ctl_elem_value *ucontrol)
2541{
2542 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2543 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2544 ucontrol->value.integer.value[0]);
2545 return 0;
2546}
2547
2548static int msm_routing_put_quat_mi2s_switch_mixer(
2549 struct snd_kcontrol *kcontrol,
2550 struct snd_ctl_elem_value *ucontrol)
2551{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302552 struct snd_soc_dapm_widget *widget =
2553 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302554 struct snd_soc_dapm_update *update = NULL;
2555
2556 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2557 ucontrol->value.integer.value[0]);
2558 if (ucontrol->value.integer.value[0])
2559 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2560 update);
2561 else
2562 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2563 update);
2564 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2565 return 1;
2566}
2567
Rohit Kumara5077932017-09-10 22:05:05 +05302568static int msm_routing_get_quin_mi2s_switch_mixer(
2569 struct snd_kcontrol *kcontrol,
2570 struct snd_ctl_elem_value *ucontrol)
2571{
2572 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2573 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2574 ucontrol->value.integer.value[0]);
2575 return 0;
2576}
2577
2578static int msm_routing_put_quin_mi2s_switch_mixer(
2579 struct snd_kcontrol *kcontrol,
2580 struct snd_ctl_elem_value *ucontrol)
2581{
2582 struct snd_soc_dapm_widget *widget =
2583 snd_soc_dapm_kcontrol_widget(kcontrol);
2584 struct snd_soc_dapm_update *update = NULL;
2585
2586 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2587 ucontrol->value.integer.value[0]);
2588 if (ucontrol->value.integer.value[0])
2589 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2590 update);
2591 else
2592 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2593 update);
2594 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2595 return 1;
2596}
2597
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302598static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2599 struct snd_ctl_elem_value *ucontrol)
2600{
2601 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2602 pr_debug("%s: FM Switch enable %ld\n", __func__,
2603 ucontrol->value.integer.value[0]);
2604 return 0;
2605}
2606
2607static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2608 struct snd_ctl_elem_value *ucontrol)
2609{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302610 struct snd_soc_dapm_widget *widget =
2611 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302612 struct snd_soc_dapm_update *update = NULL;
2613
2614 pr_debug("%s: FM Switch enable %ld\n", __func__,
2615 ucontrol->value.integer.value[0]);
2616 if (ucontrol->value.integer.value[0])
2617 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2618 update);
2619 else
2620 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2621 update);
2622 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2623 return 1;
2624}
2625
2626static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2627 struct snd_ctl_elem_value *ucontrol)
2628{
2629 ucontrol->value.integer.value[0] = lsm_port_index;
2630 return 0;
2631}
2632
2633static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2634 struct snd_ctl_elem_value *ucontrol)
2635{
2636 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2637 int mux = ucontrol->value.enumerated.item[0];
2638 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2639
2640 if (mux >= e->items) {
2641 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2642 return -EINVAL;
2643 }
2644
2645 pr_debug("%s: LSM enable %ld\n", __func__,
2646 ucontrol->value.integer.value[0]);
2647 switch (ucontrol->value.integer.value[0]) {
2648 case 1:
2649 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2650 break;
2651 case 2:
2652 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2653 break;
2654 case 3:
2655 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2656 break;
2657 case 4:
2658 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2659 break;
2660 case 5:
2661 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2662 break;
2663 case 6:
2664 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2665 break;
2666 case 7:
2667 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2668 break;
2669 case 8:
2670 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2671 break;
2672 case 9:
2673 lsm_port = ADM_LSM_PORT_ID;
2674 break;
2675 case 10:
2676 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2677 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302678 case 11:
2679 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2680 break;
2681 case 12:
2682 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2683 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302684 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002685 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302686 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302687 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002688 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2689 break;
2690 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302691 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2692 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302693 default:
2694 pr_err("Default lsm port");
2695 break;
2696 }
2697 set_lsm_port(lsm_port);
2698 lsm_port_index = ucontrol->value.integer.value[0];
2699
2700 return 0;
2701}
2702
2703static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2704 struct snd_ctl_elem_value *ucontrol)
2705{
2706 int i;
2707 u16 port_id;
2708 enum afe_mad_type mad_type;
2709
2710 pr_debug("%s: enter\n", __func__);
2711 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2712 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2713 strlen(lsm_port_text[i])))
2714 break;
2715
2716 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002717 pr_warn("%s: Invalid id name %s\n", __func__,
2718 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302719 return -EINVAL;
2720 }
2721
2722 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2723
2724 /*Check for Tertiary/Quaternary/INT3 TX port*/
2725 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2726 strlen(lsm_port_text[7])))
2727 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2728
2729 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2730 strlen(lsm_port_text[8])))
2731 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2732
2733 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2734 strlen(lsm_port_text[10])))
2735 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2736
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302737 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2738 strlen(lsm_port_text[13])))
2739 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2740
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302741 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2742 strlen(lsm_port_text[14])))
2743 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2744
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302745 mad_type = afe_port_get_mad_type(port_id);
2746 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2747 mad_type);
2748 switch (mad_type) {
2749 case MAD_HW_NONE:
2750 ucontrol->value.integer.value[0] = MADNONE;
2751 break;
2752 case MAD_HW_AUDIO:
2753 ucontrol->value.integer.value[0] = MADAUDIO;
2754 break;
2755 case MAD_HW_BEACON:
2756 ucontrol->value.integer.value[0] = MADBEACON;
2757 break;
2758 case MAD_HW_ULTRASOUND:
2759 ucontrol->value.integer.value[0] = MADULTRASOUND;
2760 break;
2761 case MAD_SW_AUDIO:
2762 ucontrol->value.integer.value[0] = MADSWAUDIO;
2763 break;
2764 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002765 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302766 return -EINVAL;
2767 }
2768 return 0;
2769}
2770
2771static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2772 struct snd_ctl_elem_value *ucontrol)
2773{
2774 int i;
2775 u16 port_id;
2776 enum afe_mad_type mad_type;
2777
2778 pr_debug("%s: enter\n", __func__);
2779 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2780 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2781 strlen(lsm_port_text[i])))
2782 break;
2783
2784 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002785 pr_warn("%s: Invalid id name %s\n", __func__,
2786 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302787 return -EINVAL;
2788 }
2789
2790 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2791 switch (ucontrol->value.integer.value[0]) {
2792 case MADNONE:
2793 mad_type = MAD_HW_NONE;
2794 break;
2795 case MADAUDIO:
2796 mad_type = MAD_HW_AUDIO;
2797 break;
2798 case MADBEACON:
2799 mad_type = MAD_HW_BEACON;
2800 break;
2801 case MADULTRASOUND:
2802 mad_type = MAD_HW_ULTRASOUND;
2803 break;
2804 case MADSWAUDIO:
2805 mad_type = MAD_SW_AUDIO;
2806 break;
2807 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002808 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302809 return -EINVAL;
2810 }
2811
2812 /*Check for Tertiary/Quaternary/INT3 TX port*/
2813 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2814 strlen(lsm_port_text[7])))
2815 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2816
2817 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2818 strlen(lsm_port_text[8])))
2819 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2820
2821 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2822 strlen(lsm_port_text[10])))
2823 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2824
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302825 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2826 strlen(lsm_port_text[13])))
2827 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2828
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302829 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2830 strlen(lsm_port_text[14])))
2831 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2832
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302833 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2834 mad_type);
2835 return afe_port_set_mad_type(port_id, mad_type);
2836}
2837
2838static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2839
2840static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2841 adm_override_chs_text);
2842
2843static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2844{
2845 int backend_id;
2846
2847 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2848 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2849 } else {
2850 pr_err("%s: unsupported backend id: %s",
2851 __func__, kcontrol->id.name);
2852 return -EINVAL;
2853 }
2854
2855 return backend_id;
2856}
2857static int msm_routing_adm_channel_config_get(
2858 struct snd_kcontrol *kcontrol,
2859 struct snd_ctl_elem_value *ucontrol)
2860{
2861 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2862
2863 if (backend_id >= 0) {
2864 mutex_lock(&routing_lock);
2865 ucontrol->value.integer.value[0] =
2866 msm_bedais[backend_id].adm_override_ch;
2867 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2868 ucontrol->value.integer.value[0], backend_id);
2869 mutex_unlock(&routing_lock);
2870 }
2871
2872 return 0;
2873}
2874
2875static int msm_routing_adm_channel_config_put(
2876 struct snd_kcontrol *kcontrol,
2877 struct snd_ctl_elem_value *ucontrol)
2878{
2879 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2880
2881 if (backend_id >= 0) {
2882 mutex_lock(&routing_lock);
2883 msm_bedais[backend_id].adm_override_ch =
2884 ucontrol->value.integer.value[0];
2885 pr_debug("%s:updating BE :%d adm channels: %d\n",
2886 __func__, backend_id,
2887 msm_bedais[backend_id].adm_override_ch);
2888 mutex_unlock(&routing_lock);
2889 }
2890
2891 return 0;
2892}
2893
2894static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2895 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2896 msm_routing_adm_channel_config_get,
2897 msm_routing_adm_channel_config_put),
2898};
2899
2900static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2901 struct snd_ctl_elem_value *ucontrol)
2902{
2903
2904 mutex_lock(&routing_lock);
2905 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2906 mutex_unlock(&routing_lock);
2907 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2908 ucontrol->value.integer.value[0]);
2909 return 0;
2910};
2911
2912static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2913 struct snd_ctl_elem_value *ucontrol)
2914{
2915 struct aanc_data aanc_info;
2916
2917 mutex_lock(&routing_lock);
2918 memset(&aanc_info, 0x00, sizeof(aanc_info));
2919 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2920 ucontrol->value.integer.value[0]);
2921 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2922 if (ucontrol->value.integer.value[0] == 0) {
2923 aanc_info.aanc_active = false;
2924 aanc_info.aanc_tx_port = 0;
2925 aanc_info.aanc_rx_port = 0;
2926 } else {
2927 aanc_info.aanc_active = true;
2928 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2929 aanc_info.aanc_tx_port =
2930 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2931 }
2932 afe_set_aanc_info(&aanc_info);
2933 mutex_unlock(&routing_lock);
2934 return 0;
2935};
2936static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2937 struct snd_ctl_elem_value *ucontrol)
2938{
2939 int idx = 0, shift = 0;
2940 struct soc_mixer_control *mc =
2941 (struct soc_mixer_control *)kcontrol->private_value;
2942
Meng Wang05d5e9a2018-03-28 16:45:03 +08002943 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2944 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302945
2946 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2947 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2948 return -EINVAL;
2949 }
2950
2951 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002952 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302953 ucontrol->value.integer.value[0] = 1;
2954 else
2955 ucontrol->value.integer.value[0] = 0;
2956
Meng Wang05d5e9a2018-03-28 16:45:03 +08002957 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302958 ucontrol->value.integer.value[0]);
2959
2960 return 0;
2961}
2962
2963static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2964 struct snd_ctl_elem_value *ucontrol)
2965{
2966 int idx = 0, shift = 0;
2967 struct soc_mixer_control *mc =
2968 (struct soc_mixer_control *)kcontrol->private_value;
2969
Meng Wang05d5e9a2018-03-28 16:45:03 +08002970 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2971 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302972
2973 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2974 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2975 return -EINVAL;
2976 }
2977
Meng Wang05d5e9a2018-03-28 16:45:03 +08002978 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2979 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302980 ucontrol->value.integer.value[0], idx, shift);
2981
2982 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002983 afe_loopback(1, msm_bedais[mc->shift].port_id,
2984 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302985 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002986 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302987 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002988 afe_loopback(0, msm_bedais[mc->shift].port_id,
2989 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302990 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002991 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302992 }
2993
2994 return 1;
2995}
2996
2997static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2998 struct snd_ctl_elem_value *ucontrol)
2999{
3000 u16 fe_id = 0;
3001
3002 fe_id = ((struct soc_mixer_control *)
3003 kcontrol->private_value)->shift;
3004 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3005 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3006 return -EINVAL;
3007 }
3008
3009 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3010
3011 return 0;
3012}
3013
3014static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3015 struct snd_ctl_elem_value *ucontrol)
3016{
3017 u16 fe_id = 0;
3018
3019 fe_id = ((struct soc_mixer_control *)
3020 kcontrol->private_value)->shift;
3021 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3022 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3023 return -EINVAL;
3024 }
3025
3026 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3027
3028 return 1;
3029}
3030
3031static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3032 struct snd_ctl_elem_value *ucontrol)
3033{
3034 u16 fe_id = 0;
3035
3036 fe_id = ((struct soc_multi_mixer_control *)
3037 kcontrol->private_value)->shift;
3038 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3039 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3040 return -EINVAL;
3041 }
3042
3043 ucontrol->value.integer.value[0] =
3044 channel_mixer[fe_id].output_channel;
3045 return 0;
3046}
3047
3048static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3049 struct snd_ctl_elem_value *ucontrol)
3050{
3051 u16 fe_id = 0;
3052
3053 fe_id = ((struct soc_multi_mixer_control *)
3054 kcontrol->private_value)->shift;
3055 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3056 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3057 return -EINVAL;
3058 }
3059
3060 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3061 fe_id,
3062 (unsigned int)(ucontrol->value.integer.value[0]));
3063 channel_mixer[fe_id].output_channel =
3064 (unsigned int)(ucontrol->value.integer.value[0]);
3065
3066 return 1;
3067}
3068
3069static const char *const ch_mixer[] = {"Disable", "Enable"};
3070
3071/* If new backend is added, need update this array */
3072static const char *const be_name[] = {
3073"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3074"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3075"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3076"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3077"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3078"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3079"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3080"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3081"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3082"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3083"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3084"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003085"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303086"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3087"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3088"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3089"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3090"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3091"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3092"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3093"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3094"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3095"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3096"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3097"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3098"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3099"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3100"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3101"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3102"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303103"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3104"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3105"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3106"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003107"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3108"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3109"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3110"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3111"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3112"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3113"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3114"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 -08003115"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 +05303116"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3117"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3118"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3119"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3120"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Meng Wangf016d302019-01-21 10:35:53 +08003121"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303122};
3123
3124static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3125 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3126static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3127 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3128static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3129 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3130static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3131 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3132
3133static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3134 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3135static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3136 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3137static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3138 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3139static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3140 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3141static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3142 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3143static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3144 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3145static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3146 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3147static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3148 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3149
3150static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3151 unsigned int channels,
3152 unsigned int items, const char *const names[])
3153{
3154 if (uinfo->value.enumerated.item >= items)
3155 uinfo->value.enumerated.item = items - 1;
3156
3157 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3158 sizeof(uinfo->value.enumerated.name),
3159 "ALSA: too long item name '%s'\n",
3160 names[uinfo->value.enumerated.item]);
3161 strlcpy(uinfo->value.enumerated.name,
3162 names[uinfo->value.enumerated.item],
3163 sizeof(uinfo->value.enumerated.name));
3164 return 0;
3165}
3166
3167static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3168 struct snd_ctl_elem_info *uinfo)
3169{
3170 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3171
3172 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3173 uinfo->count = 1;
3174
3175 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3176 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3177
3178 return 0;
3179}
3180static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3181 struct snd_ctl_elem_value *ucontrol)
3182{
3183 u16 fe_id = 0;
3184
3185 fe_id = ((struct soc_enum *)
3186 kcontrol->private_value)->shift_l;
3187 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3188 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3189 return -EINVAL;
3190 }
3191
3192 pr_debug("%s: FE %d %s\n", __func__,
3193 fe_id,
3194 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3195 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3196 return 0;
3197}
3198
3199static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3200 struct snd_ctl_elem_value *ucontrol)
3201{
3202 u16 fe_id = 0;
3203
3204 fe_id = ((struct soc_enum *)
3205 kcontrol->private_value)->shift_l;
3206 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3207 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3208 return -EINVAL;
3209 }
3210
3211 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3212 pr_debug("%s: %s FE %d\n", __func__,
3213 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3214 fe_id);
3215 return 0;
3216}
3217
3218static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3219 struct snd_ctl_elem_info *uinfo)
3220{
3221 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3222
3223 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3224 uinfo->count = 1;
3225
3226 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3227 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3228
3229 return 0;
3230}
3231
3232static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3233 struct snd_ctl_elem_value *ucontrol)
3234{
3235 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3236 u16 fe_id = 0, in_ch = 0;
3237
3238 fe_id = e->shift_l;
3239 in_ch = e->shift_r;
3240 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3241 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3242 return -EINVAL;
3243 }
3244 if (in_ch >= ADM_MAX_CHANNELS) {
3245 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3246 return -EINVAL;
3247 }
3248
3249 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3250 return 1;
3251}
3252
3253static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3254 struct snd_ctl_elem_value *ucontrol)
3255{
3256 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3257 u16 fe_id = 0, in_ch = 0;
3258
3259 fe_id = e->shift_l;
3260 in_ch = e->shift_r;
3261 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3262 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3263 return -EINVAL;
3264 }
3265 if (in_ch >= ADM_MAX_CHANNELS) {
3266 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3267 return -EINVAL;
3268 }
3269
3270 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3271 return 1;
3272}
3273
3274
3275static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3276 struct snd_ctl_elem_info *uinfo)
3277{
3278 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3279 uinfo->count = ADM_MAX_CHANNELS;
3280 uinfo->value.integer.min = 0;
3281 uinfo->value.integer.max = WEIGHT_0_DB;
3282
3283 return 0;
3284}
3285
3286static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3287 struct snd_ctl_elem_value *ucontrol)
3288{
3289 u16 fe_id = 0, out_ch = 0;
3290 int i, weight;
3291
3292 fe_id = ((struct soc_multi_mixer_control *)
3293 kcontrol->private_value)->shift;
3294 out_ch = ((struct soc_multi_mixer_control *)
3295 kcontrol->private_value)->rshift;
3296 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3297 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3298 return -EINVAL;
3299 }
3300 if (out_ch >= ADM_MAX_CHANNELS) {
3301 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3302 return -EINVAL;
3303 }
3304
3305 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3306 __func__, fe_id,
3307 ucontrol->value.integer.value[0],
3308 ucontrol->value.integer.value[1],
3309 ucontrol->value.integer.value[2],
3310 ucontrol->value.integer.value[3],
3311 ucontrol->value.integer.value[4],
3312 ucontrol->value.integer.value[5],
3313 ucontrol->value.integer.value[6],
3314 ucontrol->value.integer.value[7]);
3315
3316 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3317 weight = ucontrol->value.integer.value[i];
3318 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3319 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3320 __func__, fe_id, out_ch, i,
3321 channel_mixer[fe_id].channel_weight[out_ch][i]);
3322 }
3323
3324 return 0;
3325}
3326
3327static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3328 struct snd_ctl_elem_value *ucontrol)
3329{
3330 u16 fe_id = 0, out_ch = 0;
3331 int i;
3332
3333 fe_id = ((struct soc_multi_mixer_control *)
3334 kcontrol->private_value)->shift;
3335 out_ch = ((struct soc_multi_mixer_control *)
3336 kcontrol->private_value)->rshift;
3337 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3338 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3339 return -EINVAL;
3340 }
3341 if (out_ch >= ADM_MAX_CHANNELS) {
3342 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3343 return -EINVAL;
3344 }
3345
3346 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3347 ucontrol->value.integer.value[i] =
3348 channel_mixer[fe_id].channel_weight[out_ch][i];
3349
3350 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3351 __func__, fe_id,
3352 ucontrol->value.integer.value[0],
3353 ucontrol->value.integer.value[1],
3354 ucontrol->value.integer.value[2],
3355 ucontrol->value.integer.value[3],
3356 ucontrol->value.integer.value[4],
3357 ucontrol->value.integer.value[5],
3358 ucontrol->value.integer.value[6],
3359 ucontrol->value.integer.value[7]);
3360
3361 return 0;
3362}
3363
3364static const struct snd_kcontrol_new channel_mixer_controls[] = {
3365 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3366 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3367 msm_pcm_get_channel_rule_index,
3368 msm_pcm_put_channel_rule_index),
3369 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3370 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3371 msm_pcm_get_channel_rule_index,
3372 msm_pcm_put_channel_rule_index),
3373 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3374 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3375 msm_pcm_get_channel_rule_index,
3376 msm_pcm_put_channel_rule_index),
3377 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3378 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3379 msm_pcm_get_channel_rule_index,
3380 msm_pcm_put_channel_rule_index),
3381 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3382 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3383 msm_pcm_get_channel_rule_index,
3384 msm_pcm_put_channel_rule_index),
3385 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3386 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3387 msm_pcm_get_channel_rule_index,
3388 msm_pcm_put_channel_rule_index),
3389
3390 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3391 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3392 msm_pcm_get_out_chs,
3393 msm_pcm_put_out_chs),
3394 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3395 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3396 msm_pcm_get_out_chs,
3397 msm_pcm_put_out_chs),
3398 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3399 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3400 msm_pcm_get_out_chs,
3401 msm_pcm_put_out_chs),
3402 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3403 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3404 msm_pcm_get_out_chs,
3405 msm_pcm_put_out_chs),
3406 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3407 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3408 msm_pcm_get_out_chs,
3409 msm_pcm_put_out_chs),
3410 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3411 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3412 msm_pcm_get_out_chs,
3413 msm_pcm_put_out_chs),
3414 {
3415 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3416 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3417 .name = "MultiMedia1 Channel Mixer",
3418 .info = msm_pcm_channel_mixer_info,
3419 .get = msm_pcm_channel_mixer_get,
3420 .put = msm_pcm_channel_mixer_put,
3421 .private_value = (unsigned long)&(mm1_channel_mux)
3422 },
3423 {
3424 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3425 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3426 .name = "MultiMedia2 Channel Mixer",
3427 .info = msm_pcm_channel_mixer_info,
3428 .get = msm_pcm_channel_mixer_get,
3429 .put = msm_pcm_channel_mixer_put,
3430 .private_value = (unsigned long)&(mm2_channel_mux)
3431 },
3432 {
3433 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3434 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3435 .name = "MultiMedia3 Channel Mixer",
3436 .info = msm_pcm_channel_mixer_info,
3437 .get = msm_pcm_channel_mixer_get,
3438 .put = msm_pcm_channel_mixer_put,
3439 .private_value = (unsigned long)&(mm3_channel_mux)
3440 },
3441 {
3442 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3443 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3444 .name = "MultiMedia4 Channel Mixer",
3445 .info = msm_pcm_channel_mixer_info,
3446 .get = msm_pcm_channel_mixer_get,
3447 .put = msm_pcm_channel_mixer_put,
3448 .private_value = (unsigned long)&(mm4_channel_mux)
3449 },
3450 {
3451 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3452 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3453 .name = "MultiMedia1 Output Channel1",
3454 .info = msm_pcm_channel_weight_info,
3455 .get = msm_pcm_channel_weight_get,
3456 .put = msm_pcm_channel_weight_put,
3457 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3458 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3459 },
3460 {
3461 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3462 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3463 .name = "MultiMedia1 Output Channel2",
3464 .info = msm_pcm_channel_weight_info,
3465 .get = msm_pcm_channel_weight_get,
3466 .put = msm_pcm_channel_weight_put,
3467 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3468 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3469 },
3470 {
3471 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3472 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3473 .name = "MultiMedia1 Output Channel3",
3474 .info = msm_pcm_channel_weight_info,
3475 .get = msm_pcm_channel_weight_get,
3476 .put = msm_pcm_channel_weight_put,
3477 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3478 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3479 },
3480 {
3481 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3482 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3483 .name = "MultiMedia1 Output Channel4",
3484 .info = msm_pcm_channel_weight_info,
3485 .get = msm_pcm_channel_weight_get,
3486 .put = msm_pcm_channel_weight_put,
3487 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3488 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3489 },
3490 {
3491 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3492 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3493 .name = "MultiMedia1 Output Channel5",
3494 .info = msm_pcm_channel_weight_info,
3495 .get = msm_pcm_channel_weight_get,
3496 .put = msm_pcm_channel_weight_put,
3497 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3498 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3499 },
3500 {
3501 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3502 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3503 .name = "MultiMedia1 Output Channel6",
3504 .info = msm_pcm_channel_weight_info,
3505 .get = msm_pcm_channel_weight_get,
3506 .put = msm_pcm_channel_weight_put,
3507 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3508 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3509 },
3510 {
3511 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3512 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3513 .name = "MultiMedia1 Output Channel7",
3514 .info = msm_pcm_channel_weight_info,
3515 .get = msm_pcm_channel_weight_get,
3516 .put = msm_pcm_channel_weight_put,
3517 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3518 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3519 },
3520 {
3521 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3522 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3523 .name = "MultiMedia1 Output Channel8",
3524 .info = msm_pcm_channel_weight_info,
3525 .get = msm_pcm_channel_weight_get,
3526 .put = msm_pcm_channel_weight_put,
3527 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3528 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3529 },
3530 {
3531 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3532 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3533 .name = "MultiMedia2 Output Channel1",
3534 .info = msm_pcm_channel_weight_info,
3535 .get = msm_pcm_channel_weight_get,
3536 .put = msm_pcm_channel_weight_put,
3537 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3538 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3539 },
3540 {
3541 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3542 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3543 .name = "MultiMedia2 Output Channel2",
3544 .info = msm_pcm_channel_weight_info,
3545 .get = msm_pcm_channel_weight_get,
3546 .put = msm_pcm_channel_weight_put,
3547 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3548 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3549 },
3550 {
3551 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3552 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3553 .name = "MultiMedia2 Output Channel3",
3554 .info = msm_pcm_channel_weight_info,
3555 .get = msm_pcm_channel_weight_get,
3556 .put = msm_pcm_channel_weight_put,
3557 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3558 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3559 },
3560 {
3561 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3562 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3563 .name = "MultiMedia3 Output Channel1",
3564 .info = msm_pcm_channel_weight_info,
3565 .get = msm_pcm_channel_weight_get,
3566 .put = msm_pcm_channel_weight_put,
3567 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3568 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3569 },
3570 {
3571 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3572 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3573 .name = "MultiMedia3 Output Channel2",
3574 .info = msm_pcm_channel_weight_info,
3575 .get = msm_pcm_channel_weight_get,
3576 .put = msm_pcm_channel_weight_put,
3577 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3578 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3579 },
3580 {
3581 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3582 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3583 .name = "MultiMedia1 Channel1",
3584 .info = msm_pcm_channel_input_be_info,
3585 .get = msm_pcm_channel_input_be_get,
3586 .put = msm_pcm_channel_input_be_put,
3587 .private_value = (unsigned long)&(mm1_ch1_enum)
3588 },
3589 {
3590 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3591 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3592 .name = "MultiMedia1 Channel2",
3593 .info = msm_pcm_channel_input_be_info,
3594 .get = msm_pcm_channel_input_be_get,
3595 .put = msm_pcm_channel_input_be_put,
3596 .private_value = (unsigned long)&(mm1_ch2_enum)
3597 },
3598 {
3599 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3600 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3601 .name = "MultiMedia1 Channel3",
3602 .info = msm_pcm_channel_input_be_info,
3603 .get = msm_pcm_channel_input_be_get,
3604 .put = msm_pcm_channel_input_be_put,
3605 .private_value = (unsigned long)&(mm1_ch3_enum)
3606 },
3607 {
3608 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3609 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3610 .name = "MultiMedia1 Channel4",
3611 .info = msm_pcm_channel_input_be_info,
3612 .get = msm_pcm_channel_input_be_get,
3613 .put = msm_pcm_channel_input_be_put,
3614 .private_value = (unsigned long)&(mm1_ch4_enum)
3615 },
3616 {
3617 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3618 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3619 .name = "MultiMedia1 Channel5",
3620 .info = msm_pcm_channel_input_be_info,
3621 .get = msm_pcm_channel_input_be_get,
3622 .put = msm_pcm_channel_input_be_put,
3623 .private_value = (unsigned long)&(mm1_ch5_enum)
3624 },
3625 {
3626 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3627 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3628 .name = "MultiMedia1 Channel6",
3629 .info = msm_pcm_channel_input_be_info,
3630 .get = msm_pcm_channel_input_be_get,
3631 .put = msm_pcm_channel_input_be_put,
3632 .private_value = (unsigned long)&(mm1_ch6_enum)
3633 },
3634 {
3635 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3636 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3637 .name = "MultiMedia1 Channel7",
3638 .info = msm_pcm_channel_input_be_info,
3639 .get = msm_pcm_channel_input_be_get,
3640 .put = msm_pcm_channel_input_be_put,
3641 .private_value = (unsigned long)&(mm1_ch7_enum)
3642 },
3643 {
3644 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3645 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3646 .name = "MultiMedia1 Channel8",
3647 .info = msm_pcm_channel_input_be_info,
3648 .get = msm_pcm_channel_input_be_get,
3649 .put = msm_pcm_channel_input_be_put,
3650 .private_value = (unsigned long)&(mm1_ch8_enum)
3651 },
3652};
3653static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3654 struct snd_ctl_elem_value *ucontrol)
3655{
3656 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3657 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3658 ucontrol->value.integer.value[0]);
3659 return 0;
3660}
3661
3662static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3663 struct snd_ctl_elem_value *ucontrol)
3664{
3665 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3666 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3667 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3668 return 0;
3669}
3670
3671static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3672 "Four", "Five", "Six", "Seven", "Eight"};
3673
3674static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3675 struct snd_ctl_elem_value *ucontrol)
3676{
3677 switch (msm_ec_ref_bit_format) {
3678 case SNDRV_PCM_FORMAT_S24_LE:
3679 ucontrol->value.integer.value[0] = 2;
3680 break;
3681 case SNDRV_PCM_FORMAT_S16_LE:
3682 ucontrol->value.integer.value[0] = 1;
3683 break;
3684 default:
3685 ucontrol->value.integer.value[0] = 0;
3686 break;
3687 }
3688 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3689 __func__, ucontrol->value.integer.value[0]);
3690 return 0;
3691}
3692
3693static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3694 struct snd_ctl_elem_value *ucontrol)
3695{
3696 u16 bit_width = 0;
3697
3698 switch (ucontrol->value.integer.value[0]) {
3699 case 2:
3700 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3701 break;
3702 case 1:
3703 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3704 break;
3705 default:
3706 msm_ec_ref_bit_format = 0;
3707 break;
3708 }
3709
3710 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3711 bit_width = 16;
3712 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3713 bit_width = 24;
3714
3715 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3716 __func__, msm_ec_ref_bit_format);
3717 adm_ec_ref_rx_bit_width(bit_width);
3718 return 0;
3719}
3720
3721static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3722
3723static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3724 struct snd_ctl_elem_value *ucontrol)
3725{
3726 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3727 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3728 __func__, ucontrol->value.integer.value[0]);
3729 return 0;
3730}
3731
3732static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3733 struct snd_ctl_elem_value *ucontrol)
3734{
3735 switch (ucontrol->value.integer.value[0]) {
3736 case 0:
3737 msm_ec_ref_sampling_rate = 0;
3738 break;
3739 case 1:
3740 msm_ec_ref_sampling_rate = 8000;
3741 break;
3742 case 2:
3743 msm_ec_ref_sampling_rate = 16000;
3744 break;
3745 case 3:
3746 msm_ec_ref_sampling_rate = 32000;
3747 break;
3748 case 4:
3749 msm_ec_ref_sampling_rate = 44100;
3750 break;
3751 case 5:
3752 msm_ec_ref_sampling_rate = 48000;
3753 break;
3754 case 6:
3755 msm_ec_ref_sampling_rate = 96000;
3756 break;
3757 case 7:
3758 msm_ec_ref_sampling_rate = 192000;
3759 break;
3760 case 8:
3761 msm_ec_ref_sampling_rate = 384000;
3762 break;
3763 default:
3764 msm_ec_ref_sampling_rate = 48000;
3765 break;
3766 }
3767 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3768 __func__, msm_ec_ref_sampling_rate);
3769 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3770 return 0;
3771}
3772
3773static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3774 "32000", "44100", "48000", "96000", "192000", "384000"};
3775
3776static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3777 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3778 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3779 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3780};
3781
3782static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3783 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3784 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3785 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3786 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3787 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3788 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3789};
3790
3791static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3792 struct snd_ctl_elem_value *ucontrol)
3793{
3794 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3795 mutex_lock(&routing_lock);
3796 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3797 mutex_unlock(&routing_lock);
3798 return 0;
3799}
3800
3801static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3802 struct snd_ctl_elem_value *ucontrol)
3803{
3804 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303805 struct snd_soc_dapm_widget *widget =
3806 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303807 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3808 struct snd_soc_dapm_update *update = NULL;
3809
3810
3811 mutex_lock(&routing_lock);
3812 switch (ucontrol->value.integer.value[0]) {
3813 case 0:
3814 msm_route_ec_ref_rx = 0;
3815 ec_ref_port_id = AFE_PORT_INVALID;
3816 break;
3817 case 1:
3818 msm_route_ec_ref_rx = 1;
3819 ec_ref_port_id = SLIMBUS_0_RX;
3820 break;
3821 case 2:
3822 msm_route_ec_ref_rx = 2;
3823 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3824 break;
3825 case 3:
3826 msm_route_ec_ref_rx = 3;
3827 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3828 break;
3829 case 4:
3830 msm_route_ec_ref_rx = 4;
3831 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3832 break;
3833 case 5:
3834 msm_route_ec_ref_rx = 5;
3835 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3836 break;
3837 case 6:
3838 msm_route_ec_ref_rx = 6;
3839 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3840 break;
3841 case 7:
3842 msm_route_ec_ref_rx = 7;
3843 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3844 break;
3845 case 9:
3846 msm_route_ec_ref_rx = 9;
3847 ec_ref_port_id = SLIMBUS_5_RX;
3848 break;
3849 case 10:
3850 msm_route_ec_ref_rx = 10;
3851 ec_ref_port_id = SLIMBUS_1_TX;
3852 break;
3853 case 11:
3854 msm_route_ec_ref_rx = 11;
3855 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3856 break;
3857 case 12:
3858 msm_route_ec_ref_rx = 12;
3859 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3860 break;
3861 case 13:
3862 msm_route_ec_ref_rx = 13;
3863 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3864 break;
3865 case 14:
3866 msm_route_ec_ref_rx = 14;
3867 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3868 break;
3869 case 15:
3870 msm_route_ec_ref_rx = 15;
3871 ec_ref_port_id = SLIMBUS_6_RX;
3872 break;
3873 case 16:
3874 msm_route_ec_ref_rx = 16;
3875 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3876 break;
3877 case 17:
3878 msm_route_ec_ref_rx = 17;
3879 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3880 break;
3881 case 18:
3882 msm_route_ec_ref_rx = 18;
3883 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3884 break;
3885 case 19:
3886 msm_route_ec_ref_rx = 19;
3887 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3888 break;
3889 case 20:
3890 msm_route_ec_ref_rx = 20;
3891 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3892 break;
3893 case 21:
3894 msm_route_ec_ref_rx = 21;
3895 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3896 break;
3897 case 22:
3898 msm_route_ec_ref_rx = 22;
3899 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3900 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003901 case 23:
3902 msm_route_ec_ref_rx = 23;
3903 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3904 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303905 case 24:
3906 msm_route_ec_ref_rx = 24;
3907 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3908 break;
3909 case 25:
3910 msm_route_ec_ref_rx = 25;
3911 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3912 break;
3913 case 26:
3914 msm_route_ec_ref_rx = 26;
3915 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3916 break;
3917 case 27:
3918 msm_route_ec_ref_rx = 27;
3919 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3920 break;
3921 case 28:
3922 msm_route_ec_ref_rx = 28;
3923 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3924 break;
Zhou Songb167db12018-07-02 17:14:00 +08003925 case 29:
3926 msm_route_ec_ref_rx = 29;
3927 ec_ref_port_id = SLIMBUS_7_RX;
3928 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303929 case 30:
3930 msm_route_ec_ref_rx = 30;
3931 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3932 break;
3933 case 31:
3934 msm_route_ec_ref_rx = 31;
3935 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3936 break;
3937 case 32:
3938 msm_route_ec_ref_rx = 32;
3939 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3940 break;
3941 case 33:
3942 msm_route_ec_ref_rx = 33;
3943 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3944 break;
3945 case 34:
3946 msm_route_ec_ref_rx = 34;
3947 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3948 break;
Derek Chen2bb55772018-10-24 00:17:15 -07003949 case 35:
3950 msm_route_ec_ref_rx = 35;
3951 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
3952 break;
3953 case 36:
3954 msm_route_ec_ref_rx = 36;
3955 ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
3956 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303957 default:
3958 msm_route_ec_ref_rx = 0; /* NONE */
3959 pr_err("%s EC ref rx %ld not valid\n",
3960 __func__, ucontrol->value.integer.value[0]);
3961 ec_ref_port_id = AFE_PORT_INVALID;
3962 break;
3963 }
Surendar Karkae7507512018-07-20 15:46:54 +05303964 msm_ec_ref_port_id = ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303965 adm_ec_ref_rx_id(ec_ref_port_id);
3966 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3967 __func__, msm_route_ec_ref_rx);
3968 mutex_unlock(&routing_lock);
3969 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3970 msm_route_ec_ref_rx, e, update);
3971 return 0;
3972}
3973
3974static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3975 "PRI_MI2S_TX", "SEC_MI2S_TX",
3976 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3977 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3978 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3979 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303980 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3981 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003982 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303983 "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 -07003984 "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 +05303985};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303986
3987static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3988 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3989};
3990
3991static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3992 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3993 msm_route_ec_ref_rx_enum[0],
3994 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3995
3996static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3997 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3998 msm_route_ec_ref_rx_enum[0],
3999 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4000
4001static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
4002 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
4003 msm_route_ec_ref_rx_enum[0],
4004 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4005
4006static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
4007 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
4008 msm_route_ec_ref_rx_enum[0],
4009 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4010
4011static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
4012 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
4013 msm_route_ec_ref_rx_enum[0],
4014 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4015
4016static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4017 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4018 msm_route_ec_ref_rx_enum[0],
4019 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4020
4021static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4022 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4023 msm_route_ec_ref_rx_enum[0],
4024 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4025
4026static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4027 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4028 msm_route_ec_ref_rx_enum[0],
4029 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4030
Asish Bhattacharya34504582017-08-08 12:55:01 +05304031static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4032 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4033 msm_route_ec_ref_rx_enum[0],
4034 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4035
Laxminath Kasam38070be2017-08-17 18:21:59 +05304036static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4037 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4038 msm_route_ec_ref_rx_enum[0],
4039 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4040
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304041static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4042 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4043 msm_route_ec_ref_rx_enum[0],
4044 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4045
4046static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4047 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4048 msm_route_ec_ref_rx_enum[0],
4049 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4050
4051static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4052 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4053 msm_route_ec_ref_rx_enum[0],
4054 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4055
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304056static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4057 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4058 msm_route_ec_ref_rx_enum[0],
4059 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4060
4061static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4062 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4063 msm_route_ec_ref_rx_enum[0],
4064 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4065
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304066static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4067 struct snd_ctl_elem_value *ucontrol)
4068{
4069 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4070
4071 mutex_lock(&routing_lock);
4072 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4073 mutex_unlock(&routing_lock);
4074 return 0;
4075}
4076
4077static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4078 struct snd_ctl_elem_value *ucontrol)
4079{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304080 struct snd_soc_dapm_widget *widget =
4081 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304082 int mux = ucontrol->value.enumerated.item[0];
4083 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4084 int ret = 1;
4085 bool state = true;
4086 uint16_t ext_ec_ref_port_id;
4087 struct snd_soc_dapm_update *update = NULL;
4088
4089 if (mux >= e->items) {
4090 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4091 return -EINVAL;
4092 }
4093
4094 mutex_lock(&routing_lock);
4095 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4096
4097 switch (msm_route_ext_ec_ref) {
4098 case EXT_EC_REF_PRI_MI2S_TX:
4099 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4100 break;
4101 case EXT_EC_REF_SEC_MI2S_TX:
4102 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4103 break;
4104 case EXT_EC_REF_TERT_MI2S_TX:
4105 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4106 break;
4107 case EXT_EC_REF_QUAT_MI2S_TX:
4108 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4109 break;
4110 case EXT_EC_REF_QUIN_MI2S_TX:
4111 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4112 break;
4113 case EXT_EC_REF_SLIM_1_TX:
4114 ext_ec_ref_port_id = SLIMBUS_1_TX;
4115 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004116 case EXT_EC_REF_SEC_TDM_TX:
4117 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4118 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304119 case EXT_EC_REF_NONE:
4120 default:
4121 ext_ec_ref_port_id = AFE_PORT_INVALID;
4122 state = false;
4123 break;
4124 }
4125
4126 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4127 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4128
4129 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4130 mutex_unlock(&routing_lock);
4131 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4132 update);
4133 } else {
4134 ret = -EINVAL;
4135 mutex_unlock(&routing_lock);
4136 }
4137 return ret;
4138}
4139
4140static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4141 "SEC_MI2S_TX", "TERT_MI2S_TX",
4142 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004143 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304144
4145static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4146 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4147};
4148
4149static const struct snd_kcontrol_new voc_ext_ec_mux =
4150 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4151 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4152
4153
4154static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004155 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4156 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304157 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004159 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4160 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304161 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004163 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4164 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304165 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004167 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4168 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304169 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004171 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4172 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304173 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004175 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4176 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304177 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004179 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4180 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304181 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004183 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4184 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304185 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004187 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4188 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304189 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004191 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4192 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304193 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004195 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4196 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304197 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004199 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4200 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304201 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004203 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4204 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304205 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004207 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4208 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304209 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004211 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4212 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304213 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004215 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4216 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304217 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004219 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4220 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304221 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004223 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4224 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304225 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004227 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4228 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304229 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4230 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304231 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4232 MSM_BACKEND_DAI_PRI_I2S_RX,
4233 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004235 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4236 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304237 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004239 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4240 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304241 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4242 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304243};
4244
4245static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004246 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4247 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304248 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004250 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4251 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304252 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004254 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4255 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304256 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004258 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4259 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304260 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004262 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4263 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304264 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004266 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4267 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304268 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004270 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4271 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304272 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004274 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4275 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304276 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004278 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4279 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304280 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004282 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4283 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304284 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004286 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4287 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304288 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004290 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4291 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304292 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004294 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4295 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304296 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004298 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4299 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304300 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004302 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4303 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304304 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004306 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4307 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304308 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004310 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4311 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304312 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004314 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4315 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304316 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004318 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4319 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304320 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4321 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304322 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4323 MSM_BACKEND_DAI_SEC_I2S_RX,
4324 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004326 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4327 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304328 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004330 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4331 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304332 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4333 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304334};
4335
Ralf Herzc8701f72018-06-20 11:37:35 +02004336static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004337 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004338 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304339 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004341 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004342 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304343 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004345 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004346 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304347 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004349 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004350 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304351 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004353 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004354 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304355 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004357 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004358 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304359 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004361 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004362 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304363 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004365 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004366 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304367 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004369 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004370 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304371 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004373 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004374 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304375 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004377 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004378 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304379 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004381 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004382 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304383 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004385 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004386 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304387 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004389 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004390 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304391 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004393 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004394 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304395 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004397 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004398 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304399 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004401 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004402 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304403 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004405 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004406 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304407 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004409 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004410 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304411 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4412 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304413 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4414 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4415 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004417 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004418 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304419 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004421 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004422 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4423 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4424 msm_routing_put_audio_mixer),
4425};
4426
4427static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4428 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4429 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4430 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4431 msm_routing_put_audio_mixer),
4432 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4433 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4434 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4435 msm_routing_put_audio_mixer),
4436 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4437 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4438 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4439 msm_routing_put_audio_mixer),
4440 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4441 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4442 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4443 msm_routing_put_audio_mixer),
4444 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4445 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4446 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4447 msm_routing_put_audio_mixer),
4448 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4449 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4450 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4451 msm_routing_put_audio_mixer),
4452 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4453 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4454 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4455 msm_routing_put_audio_mixer),
4456 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4457 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4458 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4459 msm_routing_put_audio_mixer),
4460 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4461 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4462 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4463 msm_routing_put_audio_mixer),
4464 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4465 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4466 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4467 msm_routing_put_audio_mixer),
4468 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4469 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4470 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4471 msm_routing_put_audio_mixer),
4472 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4473 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4474 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4475 msm_routing_put_audio_mixer),
4476 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4477 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4478 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4479 msm_routing_put_audio_mixer),
4480 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4481 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4482 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4483 msm_routing_put_audio_mixer),
4484 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4485 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4486 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4487 msm_routing_put_audio_mixer),
4488 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4489 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4490 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4491 msm_routing_put_audio_mixer),
4492 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4493 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4494 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4495 msm_routing_put_audio_mixer),
4496 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4497 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4498 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4499 msm_routing_put_audio_mixer),
4500 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4501 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4502 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4503 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304504 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4505 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4506 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4507 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004508 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4509 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4510 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4511 msm_routing_put_audio_mixer),
4512 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4513 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304514 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4515 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304516};
4517
4518static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004519 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4520 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304521 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004523 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4524 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304525 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004527 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4528 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304529 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004531 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4532 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304533 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004535 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4536 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304537 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004539 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4540 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304541 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004543 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4544 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304545 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004547 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4548 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304549 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004551 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4552 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304553 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004555 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4556 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304557 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004559 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4560 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304561 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004563 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4564 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304565 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004567 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4568 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304569 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004571 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4572 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304573 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004575 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4576 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304577 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004579 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4580 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304581 MSM_FRONTEND_DAI_MULTIMEDIA16, 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_SLIMBUS_2_RX,
4585 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4586 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304587};
4588
4589static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004590 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4591 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304592 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004594 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4595 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304596 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004598 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4599 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304600 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004602 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4603 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304604 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004606 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4607 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304608 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004610 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4611 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304612 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004614 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4615 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304616 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004618 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4619 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304620 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004622 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4623 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304624 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004626 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4627 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304628 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004630 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4631 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304632 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004634 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4635 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304636 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004638 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4639 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304640 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004642 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4643 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304644 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004646 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4647 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304648 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004650 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4651 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304652 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004654 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4655 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304656 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004658 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4659 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304660 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004662 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4663 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304664 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4665 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304666 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4667 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4668 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004670 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4671 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304672 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004674 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4675 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304676 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4677 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304678};
4679
4680static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004681 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4682 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304683 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004685 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4686 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304687 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004689 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4690 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304691 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004693 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4694 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304695 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004697 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4698 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304699 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004701 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4702 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304703 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004705 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4706 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304707 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004709 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4710 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304711 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004713 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4714 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304715 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004717 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4718 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304719 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004721 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4722 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304723 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004725 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4726 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304727 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004729 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4730 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304731 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004733 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4734 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304735 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004737 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4738 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304739 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004741 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4742 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304743 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004745 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4746 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304747 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004749 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4750 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304751 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004753 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4754 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304755 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4756 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304757 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4758 MSM_BACKEND_DAI_SLIMBUS_0_RX,
4759 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004761 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4762 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304763 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004765 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4766 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304767 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4768 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304769};
4770
4771static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004772 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4773 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304774 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004776 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4777 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304778 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004780 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4781 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304782 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004784 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4785 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304786 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004788 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4789 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304790 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004792 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4793 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304794 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004796 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4797 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304798 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004800 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4801 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304802 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004804 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4805 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304806 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004808 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4809 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304810 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004812 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4813 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304814 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004816 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4817 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304818 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004820 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4821 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304822 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004824 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4825 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304826 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004828 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4829 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304830 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004832 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4833 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304834 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004836 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4837 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304838 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004840 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4841 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304842 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004844 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4845 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304846 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4847 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304848 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4849 MSM_BACKEND_DAI_MI2S_RX,
4850 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004852 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4853 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304854 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004856 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4857 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304858 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4859 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304860};
4861
4862static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004863 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4864 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304865 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004867 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4868 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304869 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004871 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4872 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304873 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004875 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4876 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304877 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004879 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4880 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304881 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004883 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4884 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304885 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004887 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4888 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304889 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004891 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4892 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304893 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004895 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4896 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304897 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004899 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4900 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304901 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004903 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4904 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304905 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004907 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4908 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304909 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004911 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4912 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304913 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004915 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4916 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304917 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004919 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4920 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304921 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004923 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4924 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304925 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004927 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4928 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304929 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004931 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4932 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304933 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004935 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4936 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304937 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4938 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304939 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4940 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
4941 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004943 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4944 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304945 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004947 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4948 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304949 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4950 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304951};
4952
4953static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004954 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4955 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304956 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004958 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4959 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304960 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004962 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4963 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304964 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004966 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4967 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304968 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004970 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4971 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304972 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004974 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4975 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304976 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004978 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4979 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304980 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004982 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4983 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304984 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004986 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4987 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304988 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004990 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4991 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304992 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004994 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4995 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304996 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004998 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4999 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305000 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005002 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5003 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305004 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005006 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5007 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305008 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005010 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5011 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305012 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005014 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5015 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305016 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005018 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5019 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305020 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005022 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5023 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305024 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005026 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5027 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305028 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5029 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305030 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5031 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5032 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005034 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5035 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305036 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005038 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5039 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305040 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5041 msm_routing_put_audio_mixer),
5042
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305043};
5044
5045static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005046 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5047 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305048 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005050 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5051 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305052 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005054 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5055 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305056 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005058 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5059 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305060 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005062 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5063 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305064 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005066 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5067 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305068 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005070 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5071 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305072 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005074 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5075 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305076 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005078 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5079 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305080 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005082 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5083 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305084 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005086 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5087 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305088 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005090 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5091 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305092 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005094 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5095 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305096 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005098 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5099 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305100 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005102 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5103 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305104 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005106 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5107 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305108 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005110 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5111 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305112 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5113 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305114 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5115 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5116 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005118 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5119 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305120 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005122 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5123 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305124 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5125 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305126};
5127
5128static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005129 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5130 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305131 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5132 msm_routing_put_audio_mixer),
5133};
5134
5135static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005136 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5137 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305138 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005140 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5141 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305142 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005144 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5145 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305146 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005148 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5149 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305150 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005152 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5153 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305154 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005156 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5157 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305158 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005160 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5161 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305162 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005164 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5165 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305166 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005168 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5169 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305170 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005172 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5173 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305174 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005176 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5177 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305178 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005180 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5181 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305182 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005184 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5185 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305186 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005188 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5189 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305190 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005192 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5193 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305194 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005196 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5197 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305198 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005200 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5201 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305202 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005204 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5205 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305206 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005208 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5209 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305210 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5211 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305212 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5213 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5214 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005216 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5217 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305218 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005220 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5221 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305222 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5223 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305224};
5225
5226static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005227 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5228 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305229 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005231 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5232 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305233 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005235 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5236 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305237 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005239 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5240 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305241 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005243 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5244 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305245 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005247 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5248 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305249 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005251 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5252 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305253 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005255 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5256 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305257 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005259 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5260 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305261 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005263 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5264 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305265 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005267 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5268 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305269 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005271 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5272 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305273 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005275 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5276 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305277 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005279 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5280 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305281 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005283 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5284 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305285 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005287 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5288 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305289 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005291 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5292 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305293 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005295 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5296 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305297 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005299 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5300 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305301 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5302 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305303 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5304 MSM_BACKEND_DAI_PRI_MI2S_RX,
5305 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005307 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5308 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305309 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005311 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5312 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305313 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5314 msm_routing_put_audio_mixer),
5315
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305316};
5317
5318static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005319 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5320 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305321 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005323 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5324 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305325 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005327 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5328 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305329 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005331 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5332 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305333 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005335 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5336 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305337 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005339 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5340 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305341 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005343 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5344 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305345 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005347 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5348 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305349 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005351 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5352 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305353 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005355 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5356 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305357 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005359 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5360 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305361 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005363 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5364 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305365 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005367 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5368 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305369 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005371 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5372 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305373 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005375 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5376 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305377 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005379 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5380 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305381 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5382 msm_routing_put_audio_mixer),
5383};
5384
5385static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005386 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5387 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305388 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005390 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5391 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305392 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005394 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5395 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305396 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005398 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5399 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305400 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005402 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5403 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305404 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005406 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5407 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305408 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005410 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5411 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305412 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005414 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5415 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305416 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005418 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5419 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305420 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005422 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5423 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305424 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005426 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5427 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305428 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005430 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5431 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305432 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005434 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5435 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305436 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005438 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5439 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305440 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005442 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5443 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305444 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005446 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5447 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305448 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5449 msm_routing_put_audio_mixer),
5450};
5451
5452static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005453 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5454 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305455 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005457 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5458 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305459 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005461 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5462 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305463 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005465 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5466 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305467 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005469 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5470 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305471 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005473 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5474 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305475 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005477 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5478 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305479 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005481 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5482 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305483 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005485 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5486 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305487 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005489 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5490 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305491 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005493 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5494 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305495 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005497 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5498 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305499 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005501 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5502 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305503 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005505 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5506 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305507 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005509 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5510 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305511 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005513 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5514 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305515 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005517 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5518 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305519 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005521 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5522 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305523 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005525 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5526 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305527 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5528 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305529 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5530 MSM_BACKEND_DAI_HDMI_RX,
5531 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005533 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5534 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305535 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005537 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5538 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305539 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5540 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305541};
5542
5543static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005544 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5545 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305546 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005548 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5549 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305550 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005552 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5553 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305554 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005556 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5557 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305558 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005560 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5561 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305562 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005564 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5565 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305566 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005568 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5569 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305570 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005572 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5573 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305574 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005576 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5577 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305578 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005580 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5581 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305582 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005584 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5585 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305586 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005588 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5589 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305590 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005592 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5593 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305594 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005596 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5597 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305598 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005600 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5601 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305602 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005604 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5605 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305606 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5607 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305608 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5609 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5610 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5611 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305612};
5613
Karthikeyan Mani57550082018-05-03 18:43:58 -07005614static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5615 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5616 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5617 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5618 msm_routing_put_audio_mixer),
5619 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5620 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5621 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5622 msm_routing_put_audio_mixer),
5623 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5624 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5625 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5626 msm_routing_put_audio_mixer),
5627 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5628 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5629 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5630 msm_routing_put_audio_mixer),
5631 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5632 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5633 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5634 msm_routing_put_audio_mixer),
5635 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5636 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5637 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5638 msm_routing_put_audio_mixer),
5639 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5640 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5641 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5642 msm_routing_put_audio_mixer),
5643 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5644 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5645 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5646 msm_routing_put_audio_mixer),
5647 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5648 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5649 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5650 msm_routing_put_audio_mixer),
5651 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5652 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5653 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5654 msm_routing_put_audio_mixer),
5655 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5656 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5657 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5658 msm_routing_put_audio_mixer),
5659 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5660 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5661 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5662 msm_routing_put_audio_mixer),
5663 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5664 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5665 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5666 msm_routing_put_audio_mixer),
5667 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5668 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5669 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5670 msm_routing_put_audio_mixer),
5671 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5672 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5673 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5674 msm_routing_put_audio_mixer),
5675 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5676 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5677 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5678 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305679 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5680 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5681 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5682 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005683};
5684
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305685 /* incall music delivery mixer */
5686static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005687 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5688 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305689 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005691 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5692 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305693 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005695 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5696 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305697 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005699 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5700 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305701 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5702 msm_routing_put_audio_mixer),
5703};
5704
5705static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005706 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5707 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305708 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005710 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5711 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305712 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005714 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5715 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305716 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005718 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5719 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305720 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5721 msm_routing_put_audio_mixer),
5722};
5723
5724static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005725 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5726 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305727 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005729 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5730 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305731 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005733 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5734 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305735 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005737 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305739 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
5741};
5742
5743static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005744 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5745 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305746 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005748 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5749 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305750 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005752 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5753 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305754 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005756 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5757 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305758 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005760 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5761 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305762 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005764 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5765 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305766 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005768 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5769 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305770 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005772 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5773 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305774 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005776 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5777 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305778 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005780 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5781 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305782 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005784 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5785 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305786 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005788 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5789 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305790 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005792 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5793 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305794 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005796 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5797 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305798 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005800 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5801 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305802 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005804 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5805 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305806 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5807 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305808 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5809 MSM_BACKEND_DAI_SLIMBUS_6_RX,
5810 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5811 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305812};
5813
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305814static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5815 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5816 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5817 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5818 msm_routing_put_audio_mixer),
5819 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5820 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5821 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5822 msm_routing_put_audio_mixer),
5823 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5824 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5825 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5826 msm_routing_put_audio_mixer),
5827 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5828 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5829 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5830 msm_routing_put_audio_mixer),
5831 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5832 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5833 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5834 msm_routing_put_audio_mixer),
5835 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5836 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5837 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5838 msm_routing_put_audio_mixer),
5839 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5840 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5841 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5842 msm_routing_put_audio_mixer),
5843 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5844 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5845 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5846 msm_routing_put_audio_mixer),
5847 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5848 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5849 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5850 msm_routing_put_audio_mixer),
5851 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5852 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5853 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5854 msm_routing_put_audio_mixer),
5855 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5856 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5857 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5858 msm_routing_put_audio_mixer),
5859 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5860 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5861 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5862 msm_routing_put_audio_mixer),
5863 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5864 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5865 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5866 msm_routing_put_audio_mixer),
5867 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5868 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5869 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5870 msm_routing_put_audio_mixer),
5871 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5872 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5873 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5874 msm_routing_put_audio_mixer),
5875 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5876 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5877 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5878 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305879 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5880 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5881 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5882 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305883};
5884
5885static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5886 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5887 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5888 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5889 msm_routing_put_audio_mixer),
5890 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5891 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5892 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5893 msm_routing_put_audio_mixer),
5894 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5895 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5896 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5897 msm_routing_put_audio_mixer),
5898 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5899 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5900 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5901 msm_routing_put_audio_mixer),
5902 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5903 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5904 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5905 msm_routing_put_audio_mixer),
5906 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5907 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5908 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5909 msm_routing_put_audio_mixer),
5910 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5911 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5912 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5913 msm_routing_put_audio_mixer),
5914 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5915 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5916 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5917 msm_routing_put_audio_mixer),
5918 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5919 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5920 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5921 msm_routing_put_audio_mixer),
5922 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5923 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5924 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5925 msm_routing_put_audio_mixer),
5926 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5927 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5928 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5929 msm_routing_put_audio_mixer),
5930 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5931 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5932 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5933 msm_routing_put_audio_mixer),
5934 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5935 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5936 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5937 msm_routing_put_audio_mixer),
5938 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5939 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5940 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5941 msm_routing_put_audio_mixer),
5942 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5943 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5944 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5945 msm_routing_put_audio_mixer),
5946 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5947 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5948 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5949 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305950 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5951 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5952 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5953 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305954};
5955
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305956static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5957 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5958 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5959 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5960 msm_routing_put_audio_mixer),
5961 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5962 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5963 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5964 msm_routing_put_audio_mixer),
5965 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5966 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5967 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5968 msm_routing_put_audio_mixer),
5969 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5970 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5971 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5972 msm_routing_put_audio_mixer),
5973 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5974 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5975 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5976 msm_routing_put_audio_mixer),
5977 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5978 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5979 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5980 msm_routing_put_audio_mixer),
5981 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5982 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5983 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5984 msm_routing_put_audio_mixer),
5985 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5986 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5987 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5988 msm_routing_put_audio_mixer),
5989 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5990 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5991 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5992 msm_routing_put_audio_mixer),
5993 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5994 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5995 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5996 msm_routing_put_audio_mixer),
5997 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5998 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5999 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6000 msm_routing_put_audio_mixer),
6001 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6002 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6003 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6004 msm_routing_put_audio_mixer),
6005 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6006 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6007 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6008 msm_routing_put_audio_mixer),
6009 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6010 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6011 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6012 msm_routing_put_audio_mixer),
6013 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6014 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6015 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6016 msm_routing_put_audio_mixer),
6017 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6018 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6019 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6020 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306021 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6022 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6023 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6024 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306025};
6026
6027static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6028 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6029 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6030 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6031 msm_routing_put_audio_mixer),
6032 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6033 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6034 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6035 msm_routing_put_audio_mixer),
6036 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6037 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6038 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6039 msm_routing_put_audio_mixer),
6040 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6041 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6042 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6043 msm_routing_put_audio_mixer),
6044 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6045 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6046 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6047 msm_routing_put_audio_mixer),
6048 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6049 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6050 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6051 msm_routing_put_audio_mixer),
6052 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6053 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6054 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6055 msm_routing_put_audio_mixer),
6056 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6057 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6058 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6059 msm_routing_put_audio_mixer),
6060 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6061 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6062 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6063 msm_routing_put_audio_mixer),
6064 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6065 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6066 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6067 msm_routing_put_audio_mixer),
6068 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6069 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6070 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6071 msm_routing_put_audio_mixer),
6072 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6073 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6074 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6075 msm_routing_put_audio_mixer),
6076 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6077 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6078 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6079 msm_routing_put_audio_mixer),
6080 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6081 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6082 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6083 msm_routing_put_audio_mixer),
6084 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6085 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6086 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6087 msm_routing_put_audio_mixer),
6088 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6089 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6090 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6091 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306092 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6093 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6094 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6095 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306096};
6097
6098static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6099 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6100 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6101 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6102 msm_routing_put_audio_mixer),
6103 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6104 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6105 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6106 msm_routing_put_audio_mixer),
6107 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6108 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6109 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6110 msm_routing_put_audio_mixer),
6111 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6112 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6113 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6114 msm_routing_put_audio_mixer),
6115 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6116 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6117 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6118 msm_routing_put_audio_mixer),
6119 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6120 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6121 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6122 msm_routing_put_audio_mixer),
6123 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6124 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6125 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6126 msm_routing_put_audio_mixer),
6127 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6128 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6129 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6130 msm_routing_put_audio_mixer),
6131 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6132 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6133 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6134 msm_routing_put_audio_mixer),
6135 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6136 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6137 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6138 msm_routing_put_audio_mixer),
6139 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6140 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6141 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6142 msm_routing_put_audio_mixer),
6143 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6144 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6145 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6146 msm_routing_put_audio_mixer),
6147 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6148 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6149 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6150 msm_routing_put_audio_mixer),
6151 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6152 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6153 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6154 msm_routing_put_audio_mixer),
6155 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6156 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6157 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6158 msm_routing_put_audio_mixer),
6159 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6160 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6161 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6162 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306163 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6164 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6165 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6166 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306167};
6168
6169static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6170 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6171 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6172 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6173 msm_routing_put_audio_mixer),
6174 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6175 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6176 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6177 msm_routing_put_audio_mixer),
6178 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6179 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6180 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6181 msm_routing_put_audio_mixer),
6182 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6183 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6184 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6185 msm_routing_put_audio_mixer),
6186 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6187 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6188 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6189 msm_routing_put_audio_mixer),
6190 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6191 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6192 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6193 msm_routing_put_audio_mixer),
6194 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6195 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6196 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6197 msm_routing_put_audio_mixer),
6198 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6199 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6200 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6201 msm_routing_put_audio_mixer),
6202 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6203 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6204 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6205 msm_routing_put_audio_mixer),
6206 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6207 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6208 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6209 msm_routing_put_audio_mixer),
6210 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6211 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6212 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6213 msm_routing_put_audio_mixer),
6214 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6215 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6216 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6217 msm_routing_put_audio_mixer),
6218 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6219 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6220 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6221 msm_routing_put_audio_mixer),
6222 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6223 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6224 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6225 msm_routing_put_audio_mixer),
6226 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6227 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6228 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6229 msm_routing_put_audio_mixer),
6230 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6231 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6232 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6233 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306234 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6235 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6236 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6237 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306238};
6239
6240static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6241 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6242 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6243 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6244 msm_routing_put_audio_mixer),
6245 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6247 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6248 msm_routing_put_audio_mixer),
6249 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6250 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6251 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6252 msm_routing_put_audio_mixer),
6253 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6254 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6255 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6256 msm_routing_put_audio_mixer),
6257 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6258 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6259 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6260 msm_routing_put_audio_mixer),
6261 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6262 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6263 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6264 msm_routing_put_audio_mixer),
6265 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6266 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6267 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6268 msm_routing_put_audio_mixer),
6269 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6270 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6271 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6272 msm_routing_put_audio_mixer),
6273 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6274 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6275 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6276 msm_routing_put_audio_mixer),
6277 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6278 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6279 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6280 msm_routing_put_audio_mixer),
6281 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6282 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6283 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6284 msm_routing_put_audio_mixer),
6285 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6286 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6287 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6288 msm_routing_put_audio_mixer),
6289 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6290 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6291 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6292 msm_routing_put_audio_mixer),
6293 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6294 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6295 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6296 msm_routing_put_audio_mixer),
6297 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6298 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6299 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6300 msm_routing_put_audio_mixer),
6301 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6302 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6303 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6304 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306305 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6306 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6307 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6308 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306309};
6310
6311static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6312 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6313 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6314 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6315 msm_routing_put_audio_mixer),
6316 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6317 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6318 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6319 msm_routing_put_audio_mixer),
6320 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6321 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6322 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6323 msm_routing_put_audio_mixer),
6324 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6325 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6326 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6327 msm_routing_put_audio_mixer),
6328 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6329 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6330 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6331 msm_routing_put_audio_mixer),
6332 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6333 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6334 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6335 msm_routing_put_audio_mixer),
6336 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6337 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6338 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6339 msm_routing_put_audio_mixer),
6340 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6341 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6342 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6343 msm_routing_put_audio_mixer),
6344 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6345 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6346 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6347 msm_routing_put_audio_mixer),
6348 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6349 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6350 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6351 msm_routing_put_audio_mixer),
6352 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6353 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6354 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6355 msm_routing_put_audio_mixer),
6356 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6357 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6358 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6359 msm_routing_put_audio_mixer),
6360 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6361 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6362 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6363 msm_routing_put_audio_mixer),
6364 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6365 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6366 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6367 msm_routing_put_audio_mixer),
6368 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6369 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6370 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6371 msm_routing_put_audio_mixer),
6372 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6373 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6374 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6375 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306376 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6377 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6378 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6379 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306380};
6381
6382static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6383 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6384 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6385 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6386 msm_routing_put_audio_mixer),
6387 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6388 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6389 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6390 msm_routing_put_audio_mixer),
6391 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6392 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6393 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6394 msm_routing_put_audio_mixer),
6395 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6396 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6397 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6398 msm_routing_put_audio_mixer),
6399 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6400 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6401 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6402 msm_routing_put_audio_mixer),
6403 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6404 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6405 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6406 msm_routing_put_audio_mixer),
6407 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6408 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6409 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6410 msm_routing_put_audio_mixer),
6411 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6412 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6413 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6414 msm_routing_put_audio_mixer),
6415 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6416 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6417 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6418 msm_routing_put_audio_mixer),
6419 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6420 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6421 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6422 msm_routing_put_audio_mixer),
6423 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6424 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6425 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6426 msm_routing_put_audio_mixer),
6427 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6428 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6429 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6430 msm_routing_put_audio_mixer),
6431 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6432 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6433 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6434 msm_routing_put_audio_mixer),
6435 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6436 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6437 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6438 msm_routing_put_audio_mixer),
6439 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6440 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6441 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6442 msm_routing_put_audio_mixer),
6443 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6444 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6445 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6446 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306447 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6448 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6449 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6450 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306451};
6452
6453static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6454 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6455 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6456 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6457 msm_routing_put_audio_mixer),
6458 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6459 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6460 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6461 msm_routing_put_audio_mixer),
6462 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6463 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6464 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6465 msm_routing_put_audio_mixer),
6466 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6467 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6468 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6469 msm_routing_put_audio_mixer),
6470 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6471 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6472 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6473 msm_routing_put_audio_mixer),
6474 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6475 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6476 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6477 msm_routing_put_audio_mixer),
6478 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6479 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6480 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6481 msm_routing_put_audio_mixer),
6482 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6483 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6484 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6485 msm_routing_put_audio_mixer),
6486 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6487 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6488 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6489 msm_routing_put_audio_mixer),
6490 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6491 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6492 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6493 msm_routing_put_audio_mixer),
6494 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6495 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6496 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6497 msm_routing_put_audio_mixer),
6498 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6499 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6500 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6501 msm_routing_put_audio_mixer),
6502 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6503 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6504 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6505 msm_routing_put_audio_mixer),
6506 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6507 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6508 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6509 msm_routing_put_audio_mixer),
6510 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6511 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6512 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6513 msm_routing_put_audio_mixer),
6514 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6515 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6516 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6517 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306518 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6519 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6520 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6521 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306522};
6523
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306524static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006525 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6526 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306527 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006529 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306531 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006533 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306535 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006537 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6538 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306539 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006541 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306543 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006545 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6546 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306547 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006549 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6550 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306551 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006553 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6554 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306555 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006557 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6558 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306559 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006561 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306563 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006565 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306567 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006569 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6570 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306571 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006573 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306575 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006577 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6578 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306579 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006581 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6582 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306583 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006585 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6586 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306587 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6588 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306589 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6590 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6591 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6592 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306593};
6594
Surendar Karka3ef3d812018-09-28 18:52:35 +05306595static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6596 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6597 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6598 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6599 msm_routing_put_audio_mixer),
6600 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6601 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6602 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6603 msm_routing_put_audio_mixer),
6604 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6605 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6606 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6607 msm_routing_put_audio_mixer),
6608 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6610 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
6612 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6614 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
6616 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6617 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6618 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6619 msm_routing_put_audio_mixer),
6620 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6621 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6622 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6623 msm_routing_put_audio_mixer),
6624 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6625 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6626 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6627 msm_routing_put_audio_mixer),
6628 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6629 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6630 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6631 msm_routing_put_audio_mixer),
6632 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6633 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6634 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6635 msm_routing_put_audio_mixer),
6636 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6638 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6639 msm_routing_put_audio_mixer),
6640 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6642 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
6644 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6646 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
6648 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6649 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6650 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6651 msm_routing_put_audio_mixer),
6652 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6653 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6654 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6655 msm_routing_put_audio_mixer),
6656 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6657 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6658 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6659 msm_routing_put_audio_mixer),
6660 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6661 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6662 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6663 msm_routing_put_audio_mixer),
6664};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306665static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006666 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6667 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306668 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006670 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6671 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306672 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006674 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6675 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306676 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006678 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6679 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306680 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006682 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6683 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306684 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006686 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6687 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306688 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006690 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6691 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306692 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006694 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6695 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306696 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006698 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6699 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306700 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006702 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6703 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306704 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006706 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6707 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306708 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006710 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6711 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306712 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006714 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6715 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306716 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006718 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6719 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306720 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006722 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6723 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306724 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006726 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6727 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306728 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6729 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306730 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6731 MSM_BACKEND_DAI_USB_RX,
6732 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6733 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306734};
6735
6736static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006737 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6738 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306739 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006741 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6742 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306743 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006745 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6746 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306747 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006749 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6750 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306751 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006753 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6754 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306755 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006757 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6758 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306759 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006761 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6762 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306763 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006765 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6766 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306767 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006769 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6770 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306771 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006773 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6774 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306775 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006777 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6778 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306779 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006781 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6782 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306783 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006785 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6786 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306787 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006789 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6790 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306791 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006793 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6794 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306795 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006797 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6798 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306799 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006801 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6802 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306803 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006805 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6806 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306807 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006809 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6810 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306811 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6812 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306813 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6814 MSM_BACKEND_DAI_INT_BT_SCO_RX,
6815 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006817 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6818 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306819 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006821 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6822 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306823 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6824 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306825};
6826
6827static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006828 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6829 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306830 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006832 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6833 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306834 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006836 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6837 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306838 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006840 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6841 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306842 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006844 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6845 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306846 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006848 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6849 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306850 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006852 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6853 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306854 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006856 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6857 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306858 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006860 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6861 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306862 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006864 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6865 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306866 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006868 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6869 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306870 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006872 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6873 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306874 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006876 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6877 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306878 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006880 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6881 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306882 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006884 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6885 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306886 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006888 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6889 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306890 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6891 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306892 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6893 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
6894 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6895 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306896};
6897
6898static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006899 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6900 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306901 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006903 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6904 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306905 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006907 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6908 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306909 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006911 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6912 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306913 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006915 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6916 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306917 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006919 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6920 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306921 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006923 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6924 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306925 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006927 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6928 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306929 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006931 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6932 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306933 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006935 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6936 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306937 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006939 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6940 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306941 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006943 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6944 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306945 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006947 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6948 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306949 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006951 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6952 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306953 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006955 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6956 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306957 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006959 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6960 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306961 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006963 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6964 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306965 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006967 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6968 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306969 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006971 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6972 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306973 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6974 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306975 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6976 MSM_BACKEND_DAI_INT_FM_RX,
6977 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006979 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6980 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306981 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006983 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6984 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306985 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6986 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306987};
6988
6989static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006990 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6991 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306992 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006994 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6995 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306996 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006998 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6999 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307000 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007002 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7003 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307004 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007006 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7007 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307008 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007010 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7011 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307012 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007014 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7015 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307016 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007018 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7019 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307020 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007022 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7023 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307024 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007026 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7027 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307028 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007030 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7031 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307032 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007034 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7035 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307036 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007038 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7039 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307040 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007042 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7043 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307044 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007046 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7047 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307048 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007050 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7051 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307052 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007054 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7055 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307056 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007058 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7059 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307060 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007062 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7063 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307064 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7065 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307066 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7067 MSM_BACKEND_DAI_AFE_PCM_RX,
7068 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007070 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7071 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307072 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007074 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7075 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307076 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7077 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307078};
7079
7080static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007081 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7082 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307083 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007085 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7086 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307087 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007089 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7090 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307091 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007093 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7094 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307095 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007097 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7098 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307099 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007101 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7102 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307103 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007105 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7106 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307107 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007109 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7110 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307111 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007113 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7114 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307115 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007117 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7118 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307119 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007121 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7122 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307123 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007125 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7126 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307127 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007129 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7130 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307131 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007133 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7134 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307135 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007137 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7138 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307139 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007141 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7142 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307143 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007145 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7146 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307147 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007149 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7150 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307151 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007153 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7154 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307155 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7156 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007157 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7158 MSM_BACKEND_DAI_AUXPCM_RX,
7159 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7160 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307161 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7162 MSM_BACKEND_DAI_AUXPCM_RX,
7163 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007165 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7166 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307167 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007169 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7170 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307171 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7172 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307173};
7174
7175static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007176 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7177 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307178 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007180 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7181 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307182 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007184 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7185 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307186 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007188 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7189 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307190 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007192 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7193 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307194 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007196 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7197 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307198 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007200 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7201 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307202 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007204 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7205 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307206 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007208 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7209 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307210 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007212 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7213 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307214 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007216 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7217 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307218 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007220 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7221 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307222 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007224 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7225 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307226 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007228 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7229 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307230 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007232 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7233 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307234 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007236 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7237 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307238 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007240 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7241 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307242 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007244 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7245 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307246 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007248 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7249 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307250 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7251 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007252 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7253 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7254 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7255 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307256 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7257 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7258 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007260 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7261 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307262 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007264 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7265 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307266 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7267 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307268};
7269
7270static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007271 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7272 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307273 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007275 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7276 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307277 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007279 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7280 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307281 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007283 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7284 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307285 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007287 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7288 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307289 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007291 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7292 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307293 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007295 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7296 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307297 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007299 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7300 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307301 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007303 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7304 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307305 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007307 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7308 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307309 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007311 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7312 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307313 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007315 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7316 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307317 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007319 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7320 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307321 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007323 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7324 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307325 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007327 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7328 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307329 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007331 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7332 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307333 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7334 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307335 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7336 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7337 MSM_FRONTEND_DAI_MULTIMEDIA26, 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 quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007342 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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),
Surendar Karkac1cde372018-08-14 18:56:24 +05307406 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7407 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7408 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7409 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307410};
7411
Rohit Kumara5077932017-09-10 22:05:05 +05307412static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007413 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7414 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307415 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007417 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7418 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307419 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007421 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7422 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307423 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007425 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7426 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307427 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007429 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7430 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307431 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007433 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7434 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307435 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007437 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307439 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007441 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7442 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307443 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007445 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7446 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307447 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007449 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7450 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307451 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007453 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7454 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307455 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007457 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7458 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307459 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007461 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7462 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307463 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007465 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7466 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307467 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007469 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7470 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307471 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007473 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7474 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307475 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7476 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307477 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7478 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7479 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7480 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307481};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007483 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7484 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307485 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007487 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7488 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307489 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007491 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7492 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307493 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007495 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7496 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307497 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007499 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7500 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307501 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007503 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7504 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307505 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007507 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7508 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307509 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007511 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7512 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307513 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007515 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307517 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007519 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307521 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007523 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7524 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307525 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007527 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7528 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307529 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007531 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7532 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307533 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007535 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7536 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307537 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007539 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7540 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307541 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007543 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7544 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307545 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7546 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007547 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7549 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307551};
7552
7553static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007554 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7555 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307556 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007558 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7559 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307560 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007562 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7563 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307564 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007566 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7567 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307568 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007570 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7571 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307572 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007574 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7575 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307576 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007578 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7579 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307580 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007582 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7583 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307584 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007586 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7587 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307588 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007590 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7591 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307592 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007594 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7595 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307596 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007598 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7599 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307600 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007602 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7603 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307604 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007606 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307608 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007610 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7611 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307612 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007614 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7615 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307616 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7617 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007618 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7620 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307622};
7623
7624static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007625 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7626 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307627 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007629 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7630 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307631 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007633 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7634 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307635 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007637 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7638 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307639 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007641 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7642 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307643 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007645 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7646 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307647 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007649 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7650 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307651 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007653 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7654 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307655 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007657 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7658 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307659 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007661 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307663 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007665 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7666 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307667 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007669 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307671 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007673 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307675 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007677 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307679 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007681 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7682 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307683 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007685 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307687 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007689 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7691 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307693};
7694
7695static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007696 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7697 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307698 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007700 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307702 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007704 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307706 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007708 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307710 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007712 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7713 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307714 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007716 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307718 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007720 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307722 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007724 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307726 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007728 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307730 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007732 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307734 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007736 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307738 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007740 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7741 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307742 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007744 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7745 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307746 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007748 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7749 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307750 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007752 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7753 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307754 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007756 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7757 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307758 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7759 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007760 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7762 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307764};
7765
7766static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007767 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7768 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307769 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007771 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307773 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007775 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307777 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007779 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307781 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007783 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307785 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007787 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307789 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007791 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307793 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007795 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307797 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007799 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307801 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007803 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307805 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007807 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307809 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007811 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307813 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007815 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307817 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007819 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307821 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007823 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307825 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007827 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307829 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
7831};
7832
7833static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007834 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7835 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307836 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007838 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7839 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307840 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007842 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307844 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007846 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307848 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007850 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307852 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007854 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307856 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007858 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307860 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007862 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307864 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007866 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307868 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007870 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307872 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007874 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307876 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007878 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307880 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007882 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307884 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007886 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307888 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007890 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307892 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007894 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307896 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007898 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7900 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307902};
7903
7904static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007905 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7906 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307907 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007909 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307911 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007913 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307915 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007917 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307919 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007921 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307923 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007925 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307927 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007929 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307931 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007933 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307935 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007937 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307939 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007941 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307943 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007945 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307947 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007949 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307951 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007953 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307955 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007957 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307959 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007961 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307963 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007965 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307967 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007969 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7971 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307973};
7974
7975static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007976 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7977 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307978 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007980 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307982 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007984 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307986 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007988 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307990 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007992 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307994 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007996 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307998 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008000 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308002 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008004 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308006 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008008 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308010 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008012 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308014 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008016 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308018 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008020 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308022 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008024 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308026 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008028 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308030 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008032 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308034 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008036 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308038 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008040 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8042 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308044};
8045
8046static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008047 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308049 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008051 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308053 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008055 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308057 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008059 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308061 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008063 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308065 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008067 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308069 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008071 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308073 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008075 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308077 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008079 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308081 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008083 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308085 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008087 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308089 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008091 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308093 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008095 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308097 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008099 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308101 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008103 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308105 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008107 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308109 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008111 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8113 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308115};
8116
8117static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008118 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8119 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308120 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008122 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8123 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308124 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008126 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8127 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308128 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008130 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8131 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308132 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008134 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8135 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308136 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008138 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8139 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308140 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008142 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8143 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308144 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008146 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8147 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308148 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008150 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8151 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308152 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008154 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8155 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308156 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008158 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8159 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308160 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008162 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8163 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308164 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008166 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8167 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308168 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008170 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8171 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308172 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008174 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8175 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308176 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008178 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308180 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
8182};
8183
8184static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008185 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8186 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308187 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008189 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8190 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308191 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008193 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308195 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008197 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308199 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008201 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308203 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008205 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308207 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008209 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8210 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308211 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008213 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8214 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308215 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008217 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8218 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308219 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008221 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8222 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308223 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008225 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8226 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308227 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008229 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8230 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308231 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008233 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8234 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308235 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008237 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8238 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308239 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008241 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8242 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308243 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008245 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8246 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308247 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8248 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008249 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8251 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308253};
8254
8255static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008256 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8257 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308258 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008260 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308262 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008264 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308266 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008268 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308270 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008272 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308274 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008276 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308278 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008280 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8281 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308282 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008284 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8285 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308286 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008288 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8289 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308290 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008292 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8293 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308294 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008296 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308298 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008300 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308302 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008304 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308306 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008308 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8309 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308310 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008312 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308314 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008316 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308318 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
8320};
8321
8322static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008323 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8324 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308325 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008327 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8328 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308329 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008331 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8332 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308333 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008335 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308337 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008339 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8340 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308341 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008343 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8344 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308345 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008347 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8348 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308349 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008351 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8352 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308353 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008355 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8356 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308357 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008359 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8360 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308361 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008363 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8364 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308365 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008367 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8368 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308369 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008371 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8372 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308373 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008375 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8376 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308377 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008379 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8380 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308381 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008383 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8384 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308385 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8386 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008387 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8389 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308391};
8392
8393static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008394 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8395 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308396 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008398 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8399 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308400 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008402 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8403 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308404 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008406 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308408 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008410 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308412 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008414 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308416 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008418 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308420 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008422 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8423 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308424 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008426 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8427 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308428 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008430 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8431 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308432 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008434 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8435 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308436 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008438 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8439 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308440 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008442 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8443 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308444 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008446 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8447 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308448 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008450 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8451 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308452 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008454 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8455 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308456 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8457 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008458 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8459 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8460 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8461 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308462};
8463
8464static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008465 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8466 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308467 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008469 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8470 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308471 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008485 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008489 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008493 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008497 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008501 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008505 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308507 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008509 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308511 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008513 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308515 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008517 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8518 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308519 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008521 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8522 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308523 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008525 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8526 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308527 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8528 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008529 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8530 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8531 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8532 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308533};
8534
8535static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008536 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8537 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308538 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008540 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8541 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308542 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008544 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8545 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308546 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008548 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308550 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008552 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308554 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008556 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308558 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008560 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308562 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008564 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308566 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008568 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308570 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008572 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308574 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008576 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308578 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008580 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308582 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008584 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308586 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008588 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308590 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008592 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8593 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308594 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008596 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308598 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008600 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8602 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308604};
8605
8606static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008607 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8608 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308609 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008611 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8612 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308613 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008615 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8616 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308617 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008619 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8620 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308621 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008623 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8624 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308625 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008627 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8628 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308629 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008631 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8632 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308633 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008635 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8636 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308637 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008639 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8640 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308641 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008643 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8644 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308645 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008647 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8648 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308649 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008651 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8652 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308653 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008655 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8656 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308657 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008659 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8660 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308661 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008663 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8664 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308665 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008667 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8668 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308669 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008671 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8672 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308673 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8674 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008675 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8676 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8677 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8678 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308679};
8680
8681static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008682 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8683 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308684 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008686 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8687 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308688 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008690 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8691 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308692 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008694 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8695 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308696 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008698 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8699 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308700 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008702 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8703 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308704 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008706 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8707 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308708 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008710 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8711 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308712 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008714 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8715 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308716 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008718 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8719 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308720 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008722 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8723 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308724 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008726 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8727 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308728 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008730 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8731 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308732 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008734 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8735 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308736 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008738 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8739 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308740 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008742 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8743 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308744 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8745 msm_routing_put_audio_mixer),
8746};
8747
8748static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008749 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8750 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308751 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008753 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8754 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308755 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008757 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8758 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308759 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008761 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8762 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308763 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008765 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8766 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308767 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008769 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8770 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308771 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008773 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8774 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308775 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008777 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8778 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308779 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008781 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8782 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308783 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008785 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8786 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308787 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008789 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8790 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308791 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008793 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8794 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308795 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008797 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8798 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308799 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008801 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8802 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308803 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008805 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8806 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308807 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008809 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8810 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308811 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008813 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8814 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308815 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8816 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008817 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8818 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8819 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8820 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308821};
8822
8823static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008824 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8825 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308826 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008828 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8829 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308830 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008832 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8833 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308834 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008836 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8837 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308838 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008840 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8841 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308842 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008844 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8845 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308846 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008848 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8849 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308850 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008852 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8853 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308854 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008856 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8857 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308858 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008860 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8861 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308862 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008864 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8865 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308866 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008868 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8869 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308870 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008872 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8873 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308874 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008876 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8877 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308878 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008880 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8881 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308882 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008884 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8885 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308886 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008888 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8889 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308890 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8891 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008892 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8893 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8894 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8895 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308896};
8897
8898static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008899 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8900 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308901 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008903 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8904 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308905 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008907 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8908 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308909 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008911 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8912 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308913 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008915 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8916 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308917 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008919 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8920 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308921 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008923 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8924 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308925 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008927 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8928 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308929 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008931 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8932 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308933 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008935 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8936 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308937 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008939 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8940 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308941 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008943 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8944 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308945 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008947 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8948 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308949 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008951 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8952 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308953 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008955 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8956 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308957 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008959 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8960 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308961 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008963 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8964 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308965 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8966 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008967 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8968 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8969 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8970 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308971};
8972
Rohit Kumara5077932017-09-10 22:05:05 +05308973static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008974 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8975 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308976 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008978 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8979 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308980 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008982 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8983 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308984 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008986 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8987 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308988 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008990 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8991 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308992 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008994 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8995 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308996 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008998 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8999 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309000 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009002 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9003 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309004 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009006 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9007 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309008 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009010 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9011 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309012 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009014 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9015 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309016 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009018 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9019 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309020 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009022 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9023 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309024 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009026 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9027 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309028 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009030 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9031 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309032 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009034 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9035 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309036 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009038 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9039 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309040 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9041 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009042 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9043 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9044 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9045 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309046};
9047
9048static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009049 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9050 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309051 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009053 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9054 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309055 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009057 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9058 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309059 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009061 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9062 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309063 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009065 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9066 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309067 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009069 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309071 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009073 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009085 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009089 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009093 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9094 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309095 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009097 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9098 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309099 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009101 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9102 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309103 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009105 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9106 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309107 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309111 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9112 msm_routing_put_audio_mixer),
9113};
9114
9115static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009116 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9117 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309118 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009120 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9121 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309122 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009124 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9125 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309126 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009128 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9129 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309130 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009132 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9133 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309134 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009136 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9137 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309138 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009140 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9141 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309142 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009144 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9145 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309146 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009148 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9149 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309150 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009152 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9153 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309154 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009156 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9157 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309158 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009160 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9161 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309162 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009164 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9165 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309166 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009168 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9169 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309170 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009172 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9173 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309174 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009176 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9177 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309178 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009180 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9181 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309182 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9183 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009184 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9186 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309188};
9189
9190static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009191 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9192 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309193 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009195 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9196 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309197 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009199 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9200 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309201 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009203 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9204 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309205 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009207 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9208 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309209 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009211 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9212 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309213 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009215 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9216 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309217 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009219 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9220 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309221 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009223 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9224 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309225 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009227 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9228 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309229 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009231 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9232 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309233 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009235 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9236 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309237 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009239 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9240 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309241 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009243 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9244 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309245 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009247 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9248 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309249 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009251 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9252 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309253 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009255 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309257 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009259 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9261 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309263};
9264
9265static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009266 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9267 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309268 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009270 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9271 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309272 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009274 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9275 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309276 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009278 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9279 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309280 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009282 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9283 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309284 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009286 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9287 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309288 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009290 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9291 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309292 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009294 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9295 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309296 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009298 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9299 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309300 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009302 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9303 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309304 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009306 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9307 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309308 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009310 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9311 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309312 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009314 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9315 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309316 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009318 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9319 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309320 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009322 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9323 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309324 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009326 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9327 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309328 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009330 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9331 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309332 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9333 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009334 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9336 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309338};
9339
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309340static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009341 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9342 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309343 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009345 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9346 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309347 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009349 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9350 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309351 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009353 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9354 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309355 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009357 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9358 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309359 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009361 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9362 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309363 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009365 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9366 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309367 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009369 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9370 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309371 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009373 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9374 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309375 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9376 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +05309377 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9378 MSM_BACKEND_DAI_SLIMBUS_1_TX,
9379 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009381 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9382 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309383 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009385 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309387 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009389 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9390 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309391 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009393 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9394 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309395 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009397 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9398 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309399 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009401 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9402 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("INTERNAL_FM_TX", SND_SOC_NOPM,
9406 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309407 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009409 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9410 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309411 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009413 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9414 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309415 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009417 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9418 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309419 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009421 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9422 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309423 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009425 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9426 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309427 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009429 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9430 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309431 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009433 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9434 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309435 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009437 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9438 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309439 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009441 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9442 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309443 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009445 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9446 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309447 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009449 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9450 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309451 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009453 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9454 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309455 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009457 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9458 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309459 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009461 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9462 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309463 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009465 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9466 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309467 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009469 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9470 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309471 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009473 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9474 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309475 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009477 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9478 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309479 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009481 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9482 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309483 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009485 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9486 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309487 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009489 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9490 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309491 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009493 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9494 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309495 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009497 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9498 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309499 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009501 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9502 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309503 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009505 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9506 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309507 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009509 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9510 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309511 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009513 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9514 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309515 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009517 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9518 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309519 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009521 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9522 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309523 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9524 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309525 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9526 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9527 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9528 msm_routing_put_audio_mixer),
9529 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9530 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9531 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9532 msm_routing_put_audio_mixer),
9533 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9534 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9535 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9536 msm_routing_put_audio_mixer),
9537 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9538 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9539 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9540 msm_routing_put_audio_mixer),
9541 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9542 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9543 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9544 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009545 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9546 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9547 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9548 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9550 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9551 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9552 msm_routing_put_audio_mixer),
9553 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9554 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9555 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9556 msm_routing_put_audio_mixer),
9557 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9558 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9559 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9560 msm_routing_put_audio_mixer),
9561 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9562 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9563 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9564 msm_routing_put_audio_mixer),
9565 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9566 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9567 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9568 msm_routing_put_audio_mixer),
9569 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9570 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9571 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9572 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009573 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9574 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9575 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9576 msm_routing_put_audio_mixer),
9577 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9578 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9579 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9580 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309581 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9582 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9583 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9584 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309585 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9586 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9587 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9588 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309589};
9590
9591static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009592 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9593 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309594 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009596 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9597 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309598 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009600 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9601 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309602 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009604 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9605 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309606 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009608 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9609 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309610 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009612 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9613 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309614 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009616 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9617 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309618 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009620 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9621 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309622 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009624 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9625 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309626 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009628 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9629 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309630 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009632 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9633 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309634 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009636 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9637 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309638 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009640 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9641 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309642 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009644 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9645 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309646 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009648 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9649 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309650 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009652 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9653 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309654 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009656 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9657 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309658 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009660 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9661 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309662 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009664 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9665 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309666 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009668 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9669 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309670 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009672 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9673 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309674 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009676 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9677 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309678 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009680 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9681 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309682 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009684 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9685 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309686 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009688 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9689 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309690 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009692 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9693 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309694 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009696 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9697 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309698 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009700 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9701 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309702 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009704 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9705 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309706 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009708 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9709 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309710 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009712 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9713 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309714 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009716 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9717 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309718 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009720 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9721 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309722 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009724 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9725 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309726 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9727 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309728 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9729 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9730 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9731 msm_routing_put_audio_mixer),
9732 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9733 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9734 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9735 msm_routing_put_audio_mixer),
9736 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9737 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9738 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9739 msm_routing_put_audio_mixer),
9740 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9741 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9742 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9743 msm_routing_put_audio_mixer),
9744 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9745 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9746 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9747 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009748 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9749 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9750 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9751 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309752 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9753 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9754 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9755 msm_routing_put_audio_mixer),
9756 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9757 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9758 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9759 msm_routing_put_audio_mixer),
9760 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9761 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9762 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9763 msm_routing_put_audio_mixer),
9764 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9765 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9766 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9767 msm_routing_put_audio_mixer),
9768 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9769 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9770 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9771 msm_routing_put_audio_mixer),
9772 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9773 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9774 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9775 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009776 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9777 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9778 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9779 msm_routing_put_audio_mixer),
9780 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9781 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9782 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9783 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309784 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9785 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9786 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9787 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309788 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9789 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9790 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9791 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309792};
9793
9794static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009795 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9796 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309797 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9798 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +05309799 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9800 MSM_BACKEND_DAI_SLIMBUS_1_TX,
9801 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009803 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9804 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309805 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009807 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9808 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309809 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009811 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9812 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309813 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009815 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9816 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309817 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009819 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9820 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309821 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009823 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9824 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309825 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009827 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9828 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309829 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009831 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9832 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309833 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009835 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9836 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309837 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009839 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9840 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309841 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009843 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9844 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309845 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009847 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9848 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309849 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009851 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9852 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309853 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009855 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9856 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309857 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009859 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9860 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309861 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009863 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9864 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309865 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009867 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9868 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309869 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009871 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9872 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309873 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009875 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9876 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309877 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009879 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9880 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309881 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009883 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9884 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309885 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009887 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9888 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309889 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009891 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9892 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309893 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009895 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9896 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309897 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009899 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9900 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309901 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009903 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9904 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309905 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009907 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9908 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309909 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009911 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9912 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309913 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009915 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9916 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309917 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009919 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9920 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309921 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009923 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9924 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309925 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009927 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9928 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309929 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009931 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9932 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309933 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9934 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309935 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9936 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9937 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9938 msm_routing_put_audio_mixer),
9939 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9940 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9941 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9942 msm_routing_put_audio_mixer),
9943 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9944 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9945 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9946 msm_routing_put_audio_mixer),
9947 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9948 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9949 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9950 msm_routing_put_audio_mixer),
9951 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9952 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9953 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9954 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009955 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9956 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9957 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9958 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309959 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9960 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9961 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9962 msm_routing_put_audio_mixer),
9963 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9964 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9965 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9966 msm_routing_put_audio_mixer),
9967 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9968 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9969 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9970 msm_routing_put_audio_mixer),
9971 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9972 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9973 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9974 msm_routing_put_audio_mixer),
9975 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9976 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9977 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9978 msm_routing_put_audio_mixer),
9979 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9980 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9981 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9982 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009983 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9984 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9985 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9986 msm_routing_put_audio_mixer),
9987 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9988 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9989 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9990 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309991 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9992 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9993 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9994 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309995};
9996
9997static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009998 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9999 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010000 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10001 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010002 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10003 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10004 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010006 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10007 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010008 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010010 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10011 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010012 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010014 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10015 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010016 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010018 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10019 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010020 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010022 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10023 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010024 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010026 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10027 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010028 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010030 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10031 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010032 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010034 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10035 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010036 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010038 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10039 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010040 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010042 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10043 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010044 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010046 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10047 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010048 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010050 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10051 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010052 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010054 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10055 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010056 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010058 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10059 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010060 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010062 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10063 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010064 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010066 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10067 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010068 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010070 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10071 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010072 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010074 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10075 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010076 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010078 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10079 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010080 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010082 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10083 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010084 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010086 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10087 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010088 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010090 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10091 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010092 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010094 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10095 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010096 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010098 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10099 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010100 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010102 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10103 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010104 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010106 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10107 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010108 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010110 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10111 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010112 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010114 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10115 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010116 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010118 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10119 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010120 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010122 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10123 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010124 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010126 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10127 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010128 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010130 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10131 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010132 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10133 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010134 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10135 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10136 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10137 msm_routing_put_audio_mixer),
10138 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10139 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10140 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10141 msm_routing_put_audio_mixer),
10142 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10143 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10144 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10145 msm_routing_put_audio_mixer),
10146 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10147 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10148 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10149 msm_routing_put_audio_mixer),
10150 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10151 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10152 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10153 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010154 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10155 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10156 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10157 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010158 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10159 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10160 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10161 msm_routing_put_audio_mixer),
10162 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10163 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10164 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10165 msm_routing_put_audio_mixer),
10166 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10167 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10168 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10169 msm_routing_put_audio_mixer),
10170 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10171 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10172 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10173 msm_routing_put_audio_mixer),
10174 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10175 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10176 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10177 msm_routing_put_audio_mixer),
10178 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10179 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10180 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10181 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010182 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10183 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10184 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10185 msm_routing_put_audio_mixer),
10186 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10187 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10188 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10189 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010190 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10191 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10192 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10193 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010194};
10195
10196static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010197 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10198 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010199 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10200 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010201 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10202 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10203 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010205 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10206 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010207 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010209 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10210 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010211 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010213 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10214 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010215 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010217 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10218 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010219 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010221 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10222 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010223 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010225 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10226 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010227 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010229 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10230 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010231 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010233 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10234 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010235 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010237 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10238 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010239 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010241 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10242 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010243 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010245 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10246 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010247 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010249 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10250 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010251 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010253 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10254 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010255 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010257 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10258 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010259 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010261 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10262 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010263 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010265 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10266 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010267 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010269 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10270 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010271 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010273 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10274 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010275 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010277 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10278 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010279 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010281 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10282 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010283 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010285 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10286 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010287 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010289 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10290 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010291 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010293 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10294 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010295 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010297 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10298 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010299 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010301 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10302 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010303 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010305 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10306 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010307 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010309 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10310 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010311 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010313 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10314 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010315 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010317 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10318 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010319 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010321 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10322 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010323 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010325 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10326 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010327 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010329 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10330 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010331 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010333 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10334 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010335 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010337 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10338 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010339 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010341 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10342 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010343 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010345 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10346 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010347 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010349 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10350 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010351 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010353 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10354 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010355 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10356 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010357 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10358 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10359 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10360 msm_routing_put_audio_mixer),
10361 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10362 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10363 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10364 msm_routing_put_audio_mixer),
10365 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10366 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10367 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10368 msm_routing_put_audio_mixer),
10369 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10370 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10371 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10372 msm_routing_put_audio_mixer),
10373 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10374 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10375 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10376 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010377 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10378 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10379 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10380 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010381 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10382 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10383 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10384 msm_routing_put_audio_mixer),
10385 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10386 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10387 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10388 msm_routing_put_audio_mixer),
10389 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10390 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10391 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10392 msm_routing_put_audio_mixer),
10393 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10394 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10395 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10396 msm_routing_put_audio_mixer),
10397 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10398 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10399 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10400 msm_routing_put_audio_mixer),
10401 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10402 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10403 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10404 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010405 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10406 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10407 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10408 msm_routing_put_audio_mixer),
10409 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10410 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10411 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10412 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010413 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10414 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10415 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10416 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010417 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10418 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10419 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10420 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010421};
10422
10423static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010424 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10425 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010426 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010428 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10429 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010430 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10431 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010432 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10433 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10434 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010436 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10437 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010438 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010440 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10441 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010442 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010444 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10445 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010446 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010448 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10449 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010450 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010452 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10453 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010454 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010456 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10457 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010458 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010460 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10461 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010462 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010464 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10465 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010466 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010468 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10469 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010470 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010472 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10473 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010474 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010476 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10477 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010478 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010480 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10481 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010482 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010484 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10485 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010486 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010488 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10489 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010490 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010492 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10493 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010494 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010496 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10497 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010498 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010500 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10501 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010502 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010504 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10505 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010506 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010508 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10509 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010510 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010512 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10513 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010514 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010516 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10517 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010518 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010520 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10521 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010522 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010524 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10525 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010526 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010528 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10529 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010530 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010532 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10533 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010534 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010536 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10537 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010538 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010540 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10541 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010542 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010544 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10545 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010546 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010548 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10549 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010550 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010552 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10553 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010554 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010556 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10557 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010558 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010560 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10561 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010562 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10563 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010564 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10565 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10566 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10567 msm_routing_put_audio_mixer),
10568 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10569 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10570 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10571 msm_routing_put_audio_mixer),
10572 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10573 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10574 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10575 msm_routing_put_audio_mixer),
10576 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10577 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10578 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10579 msm_routing_put_audio_mixer),
10580 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10581 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10582 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10583 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010584 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10585 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10586 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10587 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010588 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10589 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10590 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10591 msm_routing_put_audio_mixer),
10592 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10593 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10594 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10595 msm_routing_put_audio_mixer),
10596 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10597 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10598 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10599 msm_routing_put_audio_mixer),
10600 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10601 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10602 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10603 msm_routing_put_audio_mixer),
10604 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10605 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10606 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10607 msm_routing_put_audio_mixer),
10608 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10609 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10610 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10611 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010612 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10613 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10614 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10615 msm_routing_put_audio_mixer),
10616 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10617 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10618 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10619 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010620 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10621 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10622 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10623 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010624};
10625
10626static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010627 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10628 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010629 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10630 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010631 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10632 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10633 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010635 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10636 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010637 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010639 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10640 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010641 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010643 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10644 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010645 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010647 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10648 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010649 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010651 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10652 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010653 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010655 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10656 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010657 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010659 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10660 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010661 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010663 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10664 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010665 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010667 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10668 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010669 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010671 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10672 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010673 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010675 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10676 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010677 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010679 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10680 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010681 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010683 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10684 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010685 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010687 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10688 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010689 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010691 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010693 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010695 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010697 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010699 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010701 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010703 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10704 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010705 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010707 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10708 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010709 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010711 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010713 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010715 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010717 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010719 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10720 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010721 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010723 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10724 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010725 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010727 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10728 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010729 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010731 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10732 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010733 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010735 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10736 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010737 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010739 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10740 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010741 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010743 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10744 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010745 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010747 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10748 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010749 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010751 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10752 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010753 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010755 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10756 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010757 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010759 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10760 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010761 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010763 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10764 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010765 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010767 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10768 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010769 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10770 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010771 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10772 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10773 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10774 msm_routing_put_audio_mixer),
10775 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10776 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10777 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10778 msm_routing_put_audio_mixer),
10779 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10780 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10781 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10782 msm_routing_put_audio_mixer),
10783 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10784 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10785 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10786 msm_routing_put_audio_mixer),
10787 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10788 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10789 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10790 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010791 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10792 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10793 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10794 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010795 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10796 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10797 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10798 msm_routing_put_audio_mixer),
10799 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10800 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10801 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10802 msm_routing_put_audio_mixer),
10803 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10804 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10805 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10806 msm_routing_put_audio_mixer),
10807 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10808 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10809 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10810 msm_routing_put_audio_mixer),
10811 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10812 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10813 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10814 msm_routing_put_audio_mixer),
10815 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10816 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10817 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10818 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010819 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10820 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10821 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10822 msm_routing_put_audio_mixer),
10823 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10824 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10825 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10826 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010827 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10828 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10829 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10830 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010831 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10832 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10833 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10834 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010835};
10836
Asish Bhattacharya34504582017-08-08 12:55:01 +053010837static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010838 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10839 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010840 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10841 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010842 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10843 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10844 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010846 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10847 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010848 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010850 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10851 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010852 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010854 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10855 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010856 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010858 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10859 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010860 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010862 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10863 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010864 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010866 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10867 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010868 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010870 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10871 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010872 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010874 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10875 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010876 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010878 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10879 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010880 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010882 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10883 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010884 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010886 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10887 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010888 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010890 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10891 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010892 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010894 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10895 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010896 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010898 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10899 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010900 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010902 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10903 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010904 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010906 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10907 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010908 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010910 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10911 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010912 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010914 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10915 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010916 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010918 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10919 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010920 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010922 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10923 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010924 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010926 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10927 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010928 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010930 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10931 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010932 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010934 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10935 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010936 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010938 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10939 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010940 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010942 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10943 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010944 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010946 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10947 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010948 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010950 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10951 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010952 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010954 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10955 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010956 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010958 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10959 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010960 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010962 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10963 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010964 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010966 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10967 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010968 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010970 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10971 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010972 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010974 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10975 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010976 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010978 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10979 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010980 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10981 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010982 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10983 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10984 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10985 msm_routing_put_audio_mixer),
10986 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10987 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10988 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10989 msm_routing_put_audio_mixer),
10990 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10991 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10992 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10993 msm_routing_put_audio_mixer),
10994 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10995 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10996 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10997 msm_routing_put_audio_mixer),
10998 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10999 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11000 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11001 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011002 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11003 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11004 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11005 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011006 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11007 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11008 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11009 msm_routing_get_audio_mixer,
11010 msm_routing_put_audio_mixer),
11011 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11012 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11013 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11014 msm_routing_get_audio_mixer,
11015 msm_routing_put_audio_mixer),
11016 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11017 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11018 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11019 msm_routing_get_audio_mixer,
11020 msm_routing_put_audio_mixer),
11021 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11022 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11023 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11024 msm_routing_get_audio_mixer,
11025 msm_routing_put_audio_mixer),
11026 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11027 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11028 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11029 msm_routing_get_audio_mixer,
11030 msm_routing_put_audio_mixer),
11031 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11033 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11034 msm_routing_get_audio_mixer,
11035 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011036 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11037 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11038 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11039 msm_routing_put_audio_mixer),
11040 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11041 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11042 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11043 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011044 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11045 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11046 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11047 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011048 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11049 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11050 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11051 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053011052};
11053
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011054static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011055 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11056 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011057 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11058 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011059 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11060 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11061 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011063 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11064 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011065 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011067 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11068 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011069 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011071 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11072 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011073 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011075 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11076 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011077 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011079 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11080 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011081 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011083 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11084 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011085 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011087 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011089 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011091 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11092 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011093 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011095 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11096 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011097 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011099 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11100 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011101 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011103 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11104 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011105 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011107 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11108 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011109 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011111 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11112 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011113 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011115 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11116 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011117 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011119 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11120 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011121 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011123 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11124 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011125 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011127 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011129 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011131 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011133 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011135 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11136 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011137 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11138 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011139 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11140 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11141 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11142 msm_routing_put_audio_mixer),
11143 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11144 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11145 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11146 msm_routing_put_audio_mixer),
11147 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11148 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11149 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11150 msm_routing_put_audio_mixer),
11151 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11153 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11154 msm_routing_put_audio_mixer),
11155 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11156 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11157 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11158 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011159 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11160 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11161 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11162 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011163 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11164 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11165 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11166 msm_routing_put_audio_mixer),
11167 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11168 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11169 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11170 msm_routing_put_audio_mixer),
11171 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11172 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11173 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11174 msm_routing_put_audio_mixer),
11175 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11176 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11177 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11178 msm_routing_put_audio_mixer),
11179 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11180 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11181 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11182 msm_routing_put_audio_mixer),
11183 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11184 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11185 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11186 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011187 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11188 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11189 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11190 msm_routing_put_audio_mixer),
11191 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11192 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11193 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11194 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011195 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11196 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11197 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11198 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011199};
11200
Laxminath Kasam38070be2017-08-17 18:21:59 +053011201static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011202 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11203 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011204 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11205 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011206 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11207 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11208 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011210 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11211 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011212 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011214 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011216 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011218 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11219 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011220 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011222 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011224 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011226 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011228 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011230 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11231 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011232 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011234 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11235 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011236 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011238 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011240 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011242 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011244 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011246 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11247 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011248 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011250 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11251 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011252 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011254 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11255 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011256 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011258 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11259 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011260 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011262 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11263 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011264 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011266 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11267 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011268 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011270 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11271 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011272 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011274 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11275 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011276 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011278 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11279 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011280 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011282 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11283 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011284 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011286 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11287 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011288 MSM_FRONTEND_DAI_MULTIMEDIA10, 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_AUX_PCM_TX", SND_SOC_NOPM,
11291 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011292 MSM_FRONTEND_DAI_MULTIMEDIA10, 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_AUX_PCM_TX", SND_SOC_NOPM,
11295 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011296 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011298 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11299 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011300 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011302 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11303 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011304 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011306 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11307 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011308 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11309 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011310 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11311 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11312 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11313 msm_routing_put_audio_mixer),
11314 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11315 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11316 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11317 msm_routing_put_audio_mixer),
11318 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11319 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11320 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11321 msm_routing_put_audio_mixer),
11322 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11323 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11324 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11325 msm_routing_put_audio_mixer),
11326 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11327 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11328 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11329 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011330 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11331 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11332 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11333 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011334 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11335 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11336 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11337 msm_routing_get_audio_mixer,
11338 msm_routing_put_audio_mixer),
11339 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11341 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11342 msm_routing_get_audio_mixer,
11343 msm_routing_put_audio_mixer),
11344 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11345 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11346 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11347 msm_routing_get_audio_mixer,
11348 msm_routing_put_audio_mixer),
11349 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11350 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11351 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11352 msm_routing_get_audio_mixer,
11353 msm_routing_put_audio_mixer),
11354 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11355 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11356 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11357 msm_routing_get_audio_mixer,
11358 msm_routing_put_audio_mixer),
11359 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11360 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11361 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11362 msm_routing_get_audio_mixer,
11363 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011364 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11365 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11366 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11367 msm_routing_put_audio_mixer),
11368 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11369 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11370 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11371 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011372 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11373 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11374 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11375 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011376 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11377 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11378 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11379 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011380};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011381static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011382 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11383 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011384 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11385 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011386 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11387 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11388 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011390 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11391 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011392 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011394 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11395 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011396 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011398 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11399 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011400 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011402 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11403 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011404 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011406 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11407 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011408 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011410 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11411 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011412 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011414 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11415 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011416 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11417 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011418 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11419 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11420 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11421 msm_routing_put_audio_mixer),
11422 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11423 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11424 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11425 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011426 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11427 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11428 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11429 msm_routing_put_audio_mixer),
11430 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11431 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11432 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11433 msm_routing_put_audio_mixer),
11434 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11435 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11436 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11437 msm_routing_put_audio_mixer),
11438 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11439 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11440 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11441 msm_routing_put_audio_mixer),
11442 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11443 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11444 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11445 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011446 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11447 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11448 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11449 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011450 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11451 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11452 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11453 msm_routing_get_audio_mixer,
11454 msm_routing_put_audio_mixer),
11455 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11456 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11457 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11458 msm_routing_get_audio_mixer,
11459 msm_routing_put_audio_mixer),
11460 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11461 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11462 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11463 msm_routing_get_audio_mixer,
11464 msm_routing_put_audio_mixer),
11465 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11466 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11467 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11468 msm_routing_get_audio_mixer,
11469 msm_routing_put_audio_mixer),
11470 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11471 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11472 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11473 msm_routing_get_audio_mixer,
11474 msm_routing_put_audio_mixer),
11475 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11476 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11477 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11478 msm_routing_get_audio_mixer,
11479 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011480 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11481 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11482 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11483 msm_routing_put_audio_mixer),
11484 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11485 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11486 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11487 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011488 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11489 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11490 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11491 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011492};
11493
11494static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011495 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11496 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011497 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11498 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011499 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11500 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11501 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011503 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11504 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011505 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011507 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11508 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011509 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11510 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011511 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11512 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11513 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11514 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011515 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11516 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11517 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011519 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11520 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011521 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011523 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11524 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011525 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011527 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11528 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011529 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011531 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11532 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011533 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011535 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11536 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011537 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011539 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11540 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011541 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11542 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011543 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11544 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11545 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11546 msm_routing_put_audio_mixer),
11547 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11548 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11549 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11550 msm_routing_put_audio_mixer),
11551 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11552 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11553 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11554 msm_routing_put_audio_mixer),
11555 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11556 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11557 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11558 msm_routing_put_audio_mixer),
11559 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11560 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11561 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11562 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011563 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11564 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11565 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11566 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011567 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11568 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11569 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11570 msm_routing_get_audio_mixer,
11571 msm_routing_put_audio_mixer),
11572 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11573 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11574 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11575 msm_routing_get_audio_mixer,
11576 msm_routing_put_audio_mixer),
11577 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11579 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11580 msm_routing_get_audio_mixer,
11581 msm_routing_put_audio_mixer),
11582 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11583 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11584 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11585 msm_routing_get_audio_mixer,
11586 msm_routing_put_audio_mixer),
11587 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11588 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11589 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11590 msm_routing_get_audio_mixer,
11591 msm_routing_put_audio_mixer),
11592 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11593 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11594 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11595 msm_routing_get_audio_mixer,
11596 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011597 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11598 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11599 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11600 msm_routing_put_audio_mixer),
11601 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11602 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11603 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11604 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011605 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11606 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11607 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11608 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011609};
11610
11611static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011612 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11613 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011614 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11615 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011616 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11617 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11618 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011620 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11621 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011622 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011624 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11625 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011626 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011628 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11629 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011630 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011632 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11633 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011634 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011636 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11637 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011638 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011640 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11641 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011642 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011644 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11645 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011646 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11647 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010011648 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11649 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11650 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11651 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011652 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11653 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11654 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11655 msm_routing_put_audio_mixer),
11656 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11657 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11658 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11659 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011660 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11661 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11662 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11663 msm_routing_put_audio_mixer),
11664 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11665 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11666 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11667 msm_routing_put_audio_mixer),
11668 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11669 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11670 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11671 msm_routing_put_audio_mixer),
11672 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11673 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11674 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11675 msm_routing_put_audio_mixer),
11676 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11677 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11678 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11679 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011680 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11681 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11682 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11683 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011684 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11685 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11686 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11687 msm_routing_get_audio_mixer,
11688 msm_routing_put_audio_mixer),
11689 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11690 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11691 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11692 msm_routing_get_audio_mixer,
11693 msm_routing_put_audio_mixer),
11694 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11695 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11696 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11697 msm_routing_get_audio_mixer,
11698 msm_routing_put_audio_mixer),
11699 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11700 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11701 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11702 msm_routing_get_audio_mixer,
11703 msm_routing_put_audio_mixer),
11704 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11705 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11706 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11707 msm_routing_get_audio_mixer,
11708 msm_routing_put_audio_mixer),
11709 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11710 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11711 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11712 msm_routing_get_audio_mixer,
11713 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011714 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11715 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11716 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11717 msm_routing_put_audio_mixer),
11718 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11719 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11720 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11721 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011722 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11723 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11724 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11725 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011726};
11727
11728static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011729 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11730 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011731 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011733 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11734 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011735 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011737 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11738 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011739 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011741 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11742 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011743 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011745 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11746 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011747 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011749 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11750 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011751 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011753 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11754 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011755 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011757 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11758 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011759 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011761 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11762 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011763 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011765 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11766 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011767 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011769 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11770 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011771 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011773 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11774 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011775 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011777 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11778 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011779 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011781 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11782 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011783 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011785 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11786 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011787 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011789 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11790 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011791 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011793 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11794 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011795 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011797 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11798 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011799 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011801 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11802 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011803 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011805 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11806 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011807 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011809 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11810 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011811 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011813 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11814 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011815 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011817 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11818 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011819 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011821 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11822 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011823 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011825 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11826 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011827 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11828 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011829 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11830 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11831 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11832 msm_routing_put_audio_mixer),
11833 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11834 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11835 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11836 msm_routing_put_audio_mixer),
11837 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11838 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11839 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11840 msm_routing_put_audio_mixer),
11841 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11842 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11843 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11844 msm_routing_put_audio_mixer),
11845 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11846 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11847 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11848 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011849 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11850 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11851 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11852 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011853 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11854 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11855 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11856 msm_routing_put_audio_mixer),
11857 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11858 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11859 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11860 msm_routing_put_audio_mixer),
11861 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11862 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11863 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11864 msm_routing_put_audio_mixer),
11865 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11866 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11867 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11868 msm_routing_put_audio_mixer),
11869 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11870 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11871 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11872 msm_routing_put_audio_mixer),
11873 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11874 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11875 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11876 msm_routing_put_audio_mixer),
11877 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11878 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11879 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11880 msm_routing_put_audio_mixer),
11881 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11882 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11883 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11884 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011885 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11886 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11887 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11888 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011889};
11890
11891static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11892 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_AUXPCM_TX,
11894 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11895 msm_routing_put_audio_mixer),
11896 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11898 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11899 msm_routing_put_audio_mixer),
11900 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11901 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11902 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11903 msm_routing_put_audio_mixer),
11904 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11905 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11906 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11907 msm_routing_put_audio_mixer),
11908 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11909 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11910 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11911 msm_routing_put_audio_mixer),
11912 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11913 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11914 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11915 msm_routing_put_audio_mixer),
11916 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11917 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11918 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11919 msm_routing_put_audio_mixer),
11920 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11921 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11922 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11923 msm_routing_put_audio_mixer),
11924 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11926 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11927 msm_routing_put_audio_mixer),
11928 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11929 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11930 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11931 msm_routing_put_audio_mixer),
11932 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11933 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11934 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11935 msm_routing_put_audio_mixer),
11936 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11938 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11939 msm_routing_put_audio_mixer),
11940 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11941 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11942 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11943 msm_routing_put_audio_mixer),
11944 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11946 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11947 msm_routing_put_audio_mixer),
11948 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11949 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11950 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11951 msm_routing_put_audio_mixer),
11952 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11953 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11954 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
11956 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11958 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11959 msm_routing_put_audio_mixer),
11960 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11961 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11962 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11963 msm_routing_put_audio_mixer),
11964 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11965 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11966 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11967 msm_routing_put_audio_mixer),
11968 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11969 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11970 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11971 msm_routing_put_audio_mixer),
11972 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11973 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11974 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11975 msm_routing_put_audio_mixer),
11976 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11977 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11978 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11979 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011980 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011981 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11982 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011983 msm_routing_put_audio_mixer),
11984 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011985 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11986 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011987 msm_routing_put_audio_mixer),
11988 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011989 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11990 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011991 msm_routing_put_audio_mixer),
11992 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011993 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11994 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011995 msm_routing_put_audio_mixer),
11996 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011997 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11998 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011999 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012000 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12001 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12002 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12003 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012004 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012005 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12006 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12007 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012008 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012009 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12010 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12011 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012012 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012013 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12014 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12015 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012016 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012017 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12018 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12019 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012020 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012021 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12022 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12023 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012024 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012025 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12026 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12027 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012028 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12029 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012030 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012031 msm_routing_put_audio_mixer),
12032 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12033 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012034 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012035 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012036 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12037 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12038 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12039 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012040};
12041
Surendar Karkac1cde372018-08-14 18:56:24 +053012042static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
12043 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12044 MSM_BACKEND_DAI_SLIMBUS_0_TX,
12045 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12046 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012047 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12048 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12049 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12050 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012051 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12052 MSM_BACKEND_DAI_SLIMBUS_6_TX,
12053 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12054 msm_routing_put_audio_mixer),
12055 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12056 MSM_BACKEND_DAI_SLIMBUS_7_TX,
12057 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12058 msm_routing_put_audio_mixer),
12059 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12060 MSM_BACKEND_DAI_PRI_MI2S_TX,
12061 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12062 msm_routing_put_audio_mixer),
12063 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12064 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12065 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12066 msm_routing_put_audio_mixer),
12067 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12068 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12069 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12070 msm_routing_put_audio_mixer),
12071 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12072 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12073 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12074 msm_routing_put_audio_mixer),
12075 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12076 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
12077 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12078 msm_routing_put_audio_mixer),
12079 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12080 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12081 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12082 msm_routing_put_audio_mixer),
12083 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12084 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12085 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12086 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012087 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12088 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12089 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12090 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012091 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12092 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12093 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12094 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012095};
12096
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012097static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012098 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12099 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012100 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12101 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012102 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12103 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12104 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012106 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12107 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012108 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012110 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12111 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012112 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012114 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12115 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012116 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012118 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12119 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012120 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012122 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12123 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012124 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012126 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12127 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012128 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012130 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12131 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012132 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12133 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012134 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12135 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12136 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12137 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012138 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12139 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12140 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12141 msm_routing_put_audio_mixer),
12142 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12143 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12144 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12145 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012146 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12147 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12148 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12149 msm_routing_put_audio_mixer),
12150 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12151 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12152 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12153 msm_routing_put_audio_mixer),
12154 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12155 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12156 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12157 msm_routing_put_audio_mixer),
12158 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12159 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12160 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12161 msm_routing_put_audio_mixer),
12162 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12163 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12164 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12165 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012166 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12167 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12168 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12169 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012170 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12171 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12172 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12173 msm_routing_get_audio_mixer,
12174 msm_routing_put_audio_mixer),
12175 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12176 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12177 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12178 msm_routing_get_audio_mixer,
12179 msm_routing_put_audio_mixer),
12180 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12181 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12182 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12183 msm_routing_get_audio_mixer,
12184 msm_routing_put_audio_mixer),
12185 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12186 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12187 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12188 msm_routing_get_audio_mixer,
12189 msm_routing_put_audio_mixer),
12190 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12191 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12192 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12193 msm_routing_get_audio_mixer,
12194 msm_routing_put_audio_mixer),
12195 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12196 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12197 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12198 msm_routing_get_audio_mixer,
12199 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012200 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12201 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12202 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12203 msm_routing_put_audio_mixer),
12204 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12205 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12206 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12207 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012208 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12209 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12210 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12211 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012212};
12213
12214static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012215 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12216 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012217 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12218 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012219 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12220 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12221 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012223 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12224 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012225 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012227 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12228 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012229 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012231 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12232 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012233 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012235 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12236 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012237 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012239 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12240 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012241 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012243 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12244 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012245 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012247 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12248 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012249 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12250 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012251 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12252 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12253 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12254 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012255 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12256 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12257 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12258 msm_routing_put_audio_mixer),
12259 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12260 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12261 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12262 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012263 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12264 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12265 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12266 msm_routing_put_audio_mixer),
12267 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12268 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12269 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12270 msm_routing_put_audio_mixer),
12271 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12272 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12273 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12274 msm_routing_put_audio_mixer),
12275 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12277 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12278 msm_routing_put_audio_mixer),
12279 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12280 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12281 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12282 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012283 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12284 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12285 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12286 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012287 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12288 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12289 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12290 msm_routing_get_audio_mixer,
12291 msm_routing_put_audio_mixer),
12292 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12293 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12294 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12295 msm_routing_get_audio_mixer,
12296 msm_routing_put_audio_mixer),
12297 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12298 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12299 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12300 msm_routing_get_audio_mixer,
12301 msm_routing_put_audio_mixer),
12302 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12303 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12304 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12305 msm_routing_get_audio_mixer,
12306 msm_routing_put_audio_mixer),
12307 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12308 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12309 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12310 msm_routing_get_audio_mixer,
12311 msm_routing_put_audio_mixer),
12312 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12313 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12314 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12315 msm_routing_get_audio_mixer,
12316 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012317 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12318 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12319 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12320 msm_routing_put_audio_mixer),
12321 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12322 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12323 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12324 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012325 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12326 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12327 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12328 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012329};
12330
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012331static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012332 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12333 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012334 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12335 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012336 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12337 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012338 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12339 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012340 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12341 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012342 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12343 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012344 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12345 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012346 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12347 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012348 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12349 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012350 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12351 msm_routing_put_voice_mixer),
12352};
12353
12354static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012355 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12356 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012357 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12358 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012359 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12360 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012361 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12362 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012363 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12364 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012365 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12366 msm_routing_put_voice_mixer),
12367};
12368
12369static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012370 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12371 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012372 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12373 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012374 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12375 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012376 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12377 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012378 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012380 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12381 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012382 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12383 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012384 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12385 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012386 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12387 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012388 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12389 msm_routing_put_voice_mixer),
12390};
12391
12392static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012393 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012395 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12396 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012397 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012399 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12400 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012401 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012403 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12404 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012405 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12406 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012407 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12408 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012409 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12410 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012411 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12412 msm_routing_put_voice_mixer),
12413};
12414
12415static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012416 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12417MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012418 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12419 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012420 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12421MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012422 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12423 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012424 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12425MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012426 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12427 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012428 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12429MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012430 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12431 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012432 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12433MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012434 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12435 msm_routing_put_voice_mixer),
12436};
12437
12438static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012439 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12440 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012441 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12442 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012443 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12444 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012445 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12446 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012447 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12448 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012449 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12450 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012451 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12452 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012453 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12454 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012455 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12456 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012457 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12458 msm_routing_put_voice_mixer),
12459};
12460
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012461static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012462 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12463MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012464 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12465 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012466 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12467MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012468 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12469 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012470 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12471MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012472 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12473 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012474 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12475MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012476 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12477 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012478 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12479MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012480 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12481 msm_routing_put_voice_mixer),
12482};
12483
Karthikeyan Mani57550082018-05-03 18:43:58 -070012484static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12485 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12486 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12487 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12488 msm_routing_put_voice_mixer),
12489 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12490 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12491 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12492 msm_routing_put_voice_mixer),
12493 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12494 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12495 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12496 msm_routing_put_voice_mixer),
12497 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12498 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12499 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12500 msm_routing_put_voice_mixer),
12501 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12502 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12503 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12504 msm_routing_put_voice_mixer),
12505};
12506
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012507static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012508 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12509 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012510 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12511 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012512 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12513 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012514 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12515 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012516 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12517 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012518 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12519 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012520 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12521 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012522 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12523 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012524 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12525 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012526 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12527 msm_routing_put_voice_mixer),
12528};
12529
12530static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012531 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12532 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012533 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12534 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012535 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12536 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012537 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12538 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012539 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12540 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012541 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12542 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012543 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12544 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012545 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12546 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012547 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12548 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012549 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12550 msm_routing_put_voice_mixer),
12551};
12552
12553static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012554 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12555MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012556 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12557 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012558 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12559MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012560 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12561 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012562 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12563MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012564 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12565 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012566 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12567MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012568 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12569 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012570 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12571MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012572 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12573 msm_routing_put_voice_mixer),
12574};
12575
12576static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012577 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12578MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012579 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12580 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012581 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12582MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012583 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12584 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012585 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12586MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012587 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12588 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012589 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12590MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012591 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12592 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012593 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12594MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012595 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12596 msm_routing_put_voice_mixer),
12597};
12598
12599static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012600 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12601 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012602 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12603 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012604 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12605 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012606 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12607 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012608 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12609 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012610 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12611 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012612 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012614 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12615 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012616 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12617 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012618 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12619 msm_routing_put_voice_mixer),
12620};
12621
12622static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012623 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12624 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012625 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12626 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012627 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12628 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012629 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12630 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012631 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12632 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012633 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12634 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012635 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12636 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012637 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12638 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012639 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12640 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012641 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12642 msm_routing_put_voice_mixer),
12643};
12644
12645static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012646 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12647 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012648 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12649 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012650 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12651 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012652 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12653 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012654 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12655 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012656 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12657 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012658 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12659 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012660 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12661 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012662 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12663 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012664 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12665 msm_routing_put_voice_mixer),
12666};
12667
12668static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012669 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12670 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012671 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12672 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012673 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12674 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012675 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12676 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012677 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12678 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012679 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12680 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012681 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12682 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012683 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12684 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012685 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12686 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012687 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12688 msm_routing_put_voice_mixer),
12689};
12690
12691static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012692 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12693 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012694 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12695 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012696 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12697 MSM_BACKEND_DAI_AFE_PCM_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_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012702 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12703 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012704 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12705 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012706 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12707 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012708 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12709 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012710 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12711 msm_routing_put_voice_mixer),
12712};
12713
12714static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012715 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12716 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012717 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12718 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012719 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12720 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012721 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12722 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012723 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12724 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012725 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12726 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012727 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12728 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012729 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12730 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012731 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12732 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012733 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12734 msm_routing_put_voice_mixer),
12735};
12736
12737static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012738 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12739MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012740 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12741 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012742 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12743MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012744 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12745 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012746 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12747MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012748 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12749 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012750 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12751MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012752 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12753 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012754 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12755MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012756 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12757 msm_routing_put_voice_mixer),
12758};
12759
12760static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012761 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12762MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012763 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12764 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012765 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12766MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012767 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12768 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012769 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12770MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012771 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12772 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012773 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12774MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012775 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12776 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012777 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12778MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012779 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12780 msm_routing_put_voice_mixer),
12781};
12782
12783static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012784 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12785MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012786 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12787 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012788 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12789MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012790 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12791 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012792 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12793MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012794 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12795 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012796 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12797MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012798 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12799 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012800 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12801MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012802 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12803 msm_routing_put_voice_mixer),
12804};
12805
Rohit Kumara5077932017-09-10 22:05:05 +053012806static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012807 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12808MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012809 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12810 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012811 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12812MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012813 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12814 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012815 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12816MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012817 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12818 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012819 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12820MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012821 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12822 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012823 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12824MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012825 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12826 msm_routing_put_voice_mixer),
12827};
12828
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012829static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012830 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12831 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012832 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12833 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012834 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12835 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012836 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12837 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012838 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12839 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012840 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12841 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012842 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12843 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012844 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12845 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012846 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12847 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012848 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12849 msm_routing_put_voice_mixer),
12850};
12851
12852static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012853 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12854MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012855 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12856 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012857 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12858MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012859 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12860 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012861 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12862MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012863 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12864 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012865 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12866MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012867 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12868 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012869 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12870MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012871 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12872 msm_routing_put_voice_mixer),
12873};
12874
12875static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012876 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12877 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012878 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12879 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012880 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12881 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012882 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12883 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012884 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12885 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012886 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12887 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012888 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12889 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012890 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12891 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012892 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12893 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012894 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12895 msm_routing_put_voice_mixer),
12896};
12897
12898static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012899 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12900 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012901 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12902 msm_routing_put_voice_mixer),
12903};
12904
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012905static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12906 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12907 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12908 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12909 msm_routing_put_voice_mixer),
12910 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12911 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12912 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12913 msm_routing_put_voice_mixer),
12914 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12915 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12916 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12917 msm_routing_put_voice_mixer),
12918 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12919 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12920 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12921 msm_routing_put_voice_mixer),
12922 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12923 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12924 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12925 msm_routing_put_voice_mixer),
12926};
12927
12928static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12929 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12930 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12931 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12932 msm_routing_put_voice_mixer),
12933 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12934 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12935 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12936 msm_routing_put_voice_mixer),
12937 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12938 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12939 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12940 msm_routing_put_voice_mixer),
12941 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12942 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12943 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12944 msm_routing_put_voice_mixer),
12945 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12946 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12947 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12948 msm_routing_put_voice_mixer),
12949};
12950
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012951static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12952 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12953 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12954 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12955 msm_routing_put_voice_mixer),
12956 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12957 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12958 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12959 msm_routing_put_voice_mixer),
12960 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12961 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12962 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12963 msm_routing_put_voice_mixer),
12964 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12965 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12966 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12967 msm_routing_put_voice_mixer),
12968 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12969 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12970 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12971 msm_routing_put_voice_mixer),
12972};
12973
12974static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12975 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12976 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12977 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12978 msm_routing_put_voice_mixer),
12979 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12980 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12981 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12982 msm_routing_put_voice_mixer),
12983 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12984 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12985 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12986 msm_routing_put_voice_mixer),
12987 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12988 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12989 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12990 msm_routing_put_voice_mixer),
12991 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12992 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12993 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12994 msm_routing_put_voice_mixer),
12995};
12996
12997static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12998 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12999 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13000 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13001 msm_routing_put_voice_mixer),
13002 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13003 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13004 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13005 msm_routing_put_voice_mixer),
13006 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13007 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13008 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13009 msm_routing_put_voice_mixer),
13010 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13011 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13012 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13013 msm_routing_put_voice_mixer),
13014 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13015 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13016 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13017 msm_routing_put_voice_mixer),
13018};
13019
13020static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
13021 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13022 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13023 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13024 msm_routing_put_voice_mixer),
13025 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13026 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13027 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13028 msm_routing_put_voice_mixer),
13029 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13030 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13031 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13032 msm_routing_put_voice_mixer),
13033 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13034 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13035 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13036 msm_routing_put_voice_mixer),
13037 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13038 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13039 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13040 msm_routing_put_voice_mixer),
13041};
13042
13043static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
13044 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13045 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13046 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13047 msm_routing_put_voice_mixer),
13048 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13049 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13050 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13051 msm_routing_put_voice_mixer),
13052 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13053 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13054 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13055 msm_routing_put_voice_mixer),
13056 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13057 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13058 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13059 msm_routing_put_voice_mixer),
13060 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13061 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13062 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13063 msm_routing_put_voice_mixer),
13064};
13065
13066static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
13067 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13068 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13069 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13070 msm_routing_put_voice_mixer),
13071 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13072 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13073 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13074 msm_routing_put_voice_mixer),
13075 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13076 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13077 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13078 msm_routing_put_voice_mixer),
13079 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13081 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13082 msm_routing_put_voice_mixer),
13083 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13084 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13085 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13086 msm_routing_put_voice_mixer),
13087};
13088
13089static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
13090 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13091 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13092 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13093 msm_routing_put_voice_mixer),
13094 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13095 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13096 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13097 msm_routing_put_voice_mixer),
13098 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13099 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13100 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13101 msm_routing_put_voice_mixer),
13102 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13103 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13104 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13105 msm_routing_put_voice_mixer),
13106 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13107 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13108 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13109 msm_routing_put_voice_mixer),
13110};
13111
13112static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
13113 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13114 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13115 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13116 msm_routing_put_voice_mixer),
13117 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13118 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13119 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13120 msm_routing_put_voice_mixer),
13121 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13122 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13123 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13124 msm_routing_put_voice_mixer),
13125 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13126 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13127 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13128 msm_routing_put_voice_mixer),
13129 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13130 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13131 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13132 msm_routing_put_voice_mixer),
13133};
13134
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013135static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013136 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13137 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013138 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13139 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013140 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13141 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013142 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13143 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013144};
13145
13146static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013147 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13148 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013149 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13150 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013151 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13152 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013153 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13154 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013155};
13156
13157static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013158 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13159 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013160 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13161 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013162 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013164 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13165 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013166};
13167
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013168static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013169 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
13170 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013171 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13172 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013173 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
13174 MSM_BACKEND_DAI_MI2S_TX,
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("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013178 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13179 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013180 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013181 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13182 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013183 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013184 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13185 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013186 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013187 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13188 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013189 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013190 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13191 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013192 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013193 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13194 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013195 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013196 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13197 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013198 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013199 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13200 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013201 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013202 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13203 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013204 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013205 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13206 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013207 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013208 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13209 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013210 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013211 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13212 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013213 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013214 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13215 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013216 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
13217 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013218 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13219 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013220 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
13221MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013222 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013223 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13224 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13225 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13226 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13227 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13228 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013229 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13230 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13231 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013232 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13233 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13234 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13235 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13236 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13237 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13238 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13239 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13240 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13241 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
13242 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13243 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13244 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13245 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13246 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13247 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13248 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13249 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013250};
13251
13252static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013253 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13254 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013255 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13256 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013257 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13258 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013259 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13260 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013261 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013262 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13263 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013264 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013265 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13266 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013267 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013268 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13269 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013270 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013271 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13272 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013273 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013274 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13275 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013276 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013277 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13278 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013279 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013280 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13281 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013282 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013283 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13284 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013285 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013286 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13287 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013288 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013289 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13290 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013291 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013292 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13293 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013294 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013295 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13296 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013297 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013298 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13299 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013300 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013301 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13302 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013303 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13304 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13305 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13306 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13307 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13308 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013309 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13310 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13311 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013312 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13313 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13314 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13315 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13316 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13317 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13318 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13319 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13320 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13321 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13322 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13323 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13324 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13325 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13326 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13327 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13328 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13329 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013330};
13331
13332static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013333 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13334 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013335 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13336 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013337 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13338 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013339 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13340 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013341 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13342 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013343 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13344 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013345 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13346 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013347 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13348 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013349 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13350 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013351 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13352 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013353 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13354 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013355 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13356 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013357 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13358 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013359 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13360 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013361 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13362 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013363 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13364 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013365 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13366 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013367 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13368 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013369 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13370 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013371 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13372 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013373 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13374 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013375 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13376 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013377 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13378 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013379 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13380 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013381 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13382 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013383 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13384 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013385 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13386 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013387 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13388 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013389 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13390 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013391 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13392 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013393 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13394 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013395 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13396 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013397 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13398 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13399 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13400 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13401 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13402 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013403 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13404 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13405 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013406 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13407 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13408 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13409 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13410 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13411 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13412 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13413 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13414 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13415 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13416 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13417 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13418 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13419 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13420 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13421 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13422 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13423 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013424};
13425
13426static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013427 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13428 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013429 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13430 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013431 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13432 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013433 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13434 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013435 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13436 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013437 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13438 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013439 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13440 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013441 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13442 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013443 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13444 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013445 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13446 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013447 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13448 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013449 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13450 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013451 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13452 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013453 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13454 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013455 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13456 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013457 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13458 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013459 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13460 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013461 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13462 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013463 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13464 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013465 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13466 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013467 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13468 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013469 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13470 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013471 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13472 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013473 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13474 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013475 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13476 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013477 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13478 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013479 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13480 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013481 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13482 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013483 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13484 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013485 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13486 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013487 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13488 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013489 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13490 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013491 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13492 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013493 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13494 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013495 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13496 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013497 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13498 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013499 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13500 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013501 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13502 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013503 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13504 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13505 1, 0, msm_routing_get_voice_stub_mixer,
13506 msm_routing_put_voice_stub_mixer),
13507 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13508 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13509 1, 0, msm_routing_get_voice_stub_mixer,
13510 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013511 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13512 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13513 1, 0, msm_routing_get_voice_stub_mixer,
13514 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013515 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13516 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13517 1, 0, msm_routing_get_voice_stub_mixer,
13518 msm_routing_put_voice_stub_mixer),
13519 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13520 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13521 1, 0, msm_routing_get_voice_stub_mixer,
13522 msm_routing_put_voice_stub_mixer),
13523 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13524 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13525 1, 0, msm_routing_get_voice_stub_mixer,
13526 msm_routing_put_voice_stub_mixer),
13527 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13528 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13529 1, 0, msm_routing_get_voice_stub_mixer,
13530 msm_routing_put_voice_stub_mixer),
13531 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13532 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13533 1, 0, msm_routing_get_voice_stub_mixer,
13534 msm_routing_put_voice_stub_mixer),
13535 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13536 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13537 1, 0, msm_routing_get_voice_stub_mixer,
13538 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013539};
13540
13541static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013542 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13543 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013544 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13545 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013546 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13547 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013548 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13549 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013550 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13551 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013552 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13553 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013554 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13555 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013556 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13557 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013558 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13559 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013560 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13561 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013562 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13563 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013564 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13565 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013566 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13567 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013568 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13569 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013570 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13571 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013572 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13573 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013574 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13575 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013576 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13577 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013578 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13579 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013580 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13581 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013582 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13583 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013584 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13585 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013586 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13587 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013588 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13589 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013590 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13591 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013592 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13593 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013594 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13595 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013596 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13597 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013598 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13599 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013600 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13601 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013602 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13603 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13604 1, 0, msm_routing_get_voice_stub_mixer,
13605 msm_routing_put_voice_stub_mixer),
13606 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13607 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13608 1, 0, msm_routing_get_voice_stub_mixer,
13609 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013610 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13611 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13612 1, 0, msm_routing_get_voice_stub_mixer,
13613 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013614 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13615 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13616 1, 0, msm_routing_get_voice_stub_mixer,
13617 msm_routing_put_voice_stub_mixer),
13618 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13619 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13620 1, 0, msm_routing_get_voice_stub_mixer,
13621 msm_routing_put_voice_stub_mixer),
13622 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13623 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13624 1, 0, msm_routing_get_voice_stub_mixer,
13625 msm_routing_put_voice_stub_mixer),
13626 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13627 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13628 1, 0, msm_routing_get_voice_stub_mixer,
13629 msm_routing_put_voice_stub_mixer),
13630 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13631 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13632 1, 0, msm_routing_get_voice_stub_mixer,
13633 msm_routing_put_voice_stub_mixer),
13634 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13635 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13636 1, 0, msm_routing_get_voice_stub_mixer,
13637 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013638};
13639
13640static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013641 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13642 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013643 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13644 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013645 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013647 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13648 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013649 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13650 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013651 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13652 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013653 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13654 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013655 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13656 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013657 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13658 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013659 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13660 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013661 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13662 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013663 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13664 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013665 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13666 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013667 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13668 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013669 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13670 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013671 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13672 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013673 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13674 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013675 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13676 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013677 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13678 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013679 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13680 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013681 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13682 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013683 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13684 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013685 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13686 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013687 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13688 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013689 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13690 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013691 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13692 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013693 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13694 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013695 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13696 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013697 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13698 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013699 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13700 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013701 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13702 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13703 1, 0, msm_routing_get_voice_stub_mixer,
13704 msm_routing_put_voice_stub_mixer),
13705 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13706 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13707 1, 0, msm_routing_get_voice_stub_mixer,
13708 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013709 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13710 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13711 1, 0, msm_routing_get_voice_stub_mixer,
13712 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013713 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13714 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13715 1, 0, msm_routing_get_voice_stub_mixer,
13716 msm_routing_put_voice_stub_mixer),
13717 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13718 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13719 1, 0, msm_routing_get_voice_stub_mixer,
13720 msm_routing_put_voice_stub_mixer),
13721 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13722 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13723 1, 0, msm_routing_get_voice_stub_mixer,
13724 msm_routing_put_voice_stub_mixer),
13725 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13726 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13727 1, 0, msm_routing_get_voice_stub_mixer,
13728 msm_routing_put_voice_stub_mixer),
13729 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13730 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13731 1, 0, msm_routing_get_voice_stub_mixer,
13732 msm_routing_put_voice_stub_mixer),
13733 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13734 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13735 1, 0, msm_routing_get_voice_stub_mixer,
13736 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013737};
13738
13739static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013740 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13741 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013742 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13743 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013744 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13745 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013746 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13747 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013748 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13749 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13750 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013751 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013752 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13753 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013754 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13755 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013756 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13757 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013758 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13759 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013760 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13761 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013762 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13763 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013764 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13765 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013766 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13767 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013768 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13769 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013770 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13771 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013772 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13773 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013774 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13775 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013776 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13777 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013778 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13779 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013780 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13781 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013782 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13783 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013784 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13785 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013786 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13787 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013788 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13789 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013790 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13791 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013792 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13793 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013794 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13795 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013796 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13797 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013798 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13799 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013800 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13801 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013802 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13803 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013804 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13805 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13806 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13807 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13808 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13809 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013810 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13811 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13812 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013813 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13814 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13815 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13816 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13817 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13818 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13819 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13820 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13821 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13822 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13823 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13824 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13825 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13826 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13827 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13828 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13829 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13830 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013831};
13832
13833static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013834 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013836 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013838 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13839 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013840 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013842 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13843 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013844 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013846 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13847 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013848 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013850 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13851 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013852 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013854 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13855 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013856 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013858 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13859 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013860 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013862 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13863 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013864 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13865 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013866 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13867 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013868 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13869 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013870 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13871 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013872 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13873 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013874 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13875 MSM_BACKEND_DAI_INT0_MI2S_RX,
13876 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13877 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013878};
13879
13880static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013881 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13882 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013883 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13884 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013885 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13886 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013887 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013889 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13890 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013891 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013893 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13894 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013895 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013897 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13898 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013899 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013901 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13902 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013903 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013905 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13906 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013907 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013909 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13910 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013911 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013913 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13914 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013915 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013917 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13918 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013919 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13920 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013921 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13922 MSM_BACKEND_DAI_INT4_MI2S_RX,
13923 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13924 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013925};
13926
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013927static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13928 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13929 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13930 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13931 msm_routing_put_port_mixer),
13932 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13933 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13934 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13935 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013936 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13937 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13938 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13939 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080013940 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13941 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13942 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13943 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013944};
13945
13946static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13947 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13948 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13949 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13950 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013951 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13952 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13953 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13954 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013955 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080013956 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053013957 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13958 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080013959 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13960 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13961 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13962 msm_routing_put_port_mixer),
13963
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013964};
13965
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013966static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013967 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13968 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013969 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013971 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13972 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013973 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013975 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13976 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013977 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013979 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13980 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013981 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013983 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13984 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013985 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013987 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13988 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013989 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013991 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13992 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013993 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013995 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13996 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013997 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13998 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013999 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14000 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014001 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14002 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014003 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14004 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014005 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14006 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014007 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14008 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014009 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14010 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014011 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14012 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014013 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014015 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14016 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014017 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14018 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014019 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14020 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014021 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14022 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014023 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14024 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014025 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014027 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14028 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014029 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014031 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14032 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014033 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014035 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
14036 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014037 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014039 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
14040 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014041 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014043 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
14044 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014045 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14046 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014047 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
14048 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014049 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014051 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
14052 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053014053 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14054 msm_routing_put_port_mixer),
14055 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14056 MSM_BACKEND_DAI_SLIMBUS_0_RX,
14057 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053014058 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014059};
14060
14061static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014062 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14063 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014064 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014066 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14067 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014068 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014070 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14071 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014072 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14073 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014074 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14075 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014076 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014078 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14079 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014080 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
14081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014082 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14083 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014084 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14085 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014086};
14087
14088static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014089 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14090 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014091 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014093 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14094 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014095 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14096 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014097 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14098 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014099 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014101 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14102 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014103 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14104 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014105};
14106
14107static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014108 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14109 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014110 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014112 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14113 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014114 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014116 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14117 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014118 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14119 msm_routing_put_port_mixer),
14120};
14121
14122static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014123 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14124 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014125 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014127 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14128 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014129 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014131 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14132 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014133 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14134 msm_routing_put_port_mixer),
14135};
14136
Rohit Kumara5077932017-09-10 22:05:05 +053014137static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014138 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14139 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014140 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014142 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14143 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014144 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014146 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14147 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014148 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14149 msm_routing_put_port_mixer),
14150};
14151
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014152static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014153 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14154 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014155 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014157 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14158 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014159 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
14160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014161 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14162 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014163 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014165 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14166 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014167 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014169 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14170 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014171 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014173 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14174 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014175 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14176 msm_routing_put_port_mixer),
14177};
14178
14179static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014180 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
14181 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014182 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
14183 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014184 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14185 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014186 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014188 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
14189 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014190 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
14191 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014192 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
14193 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014194 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
14195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014196 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
14197 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014198 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
14199 msm_routing_put_port_mixer),
14200};
14201
14202static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014203 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14204 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014205 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014207 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14208 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014209 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014211 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14212 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014213 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014215 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14216 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014217 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014219 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14220 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014221 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014223 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14224 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014225 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14226 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014227 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14228 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014229 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014231 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14232 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014233 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014235 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14236 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014237 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014239 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14240 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014241 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14242 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014243 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14244 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014245 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014247 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14248 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014249 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14250 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014251 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14252 MSM_BACKEND_DAI_SLIMBUS_6_RX,
14253 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14254 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014255};
14256
14257static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014258 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14259 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014260 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014262 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14263 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014264 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14265 msm_routing_put_port_mixer),
14266};
14267
14268static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014269 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14270 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014271 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014273 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14274 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014275 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14276 msm_routing_put_port_mixer),
14277};
14278
14279
14280static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014281 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14282 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014283 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14284 msm_routing_put_port_mixer),
14285};
14286
14287static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014288 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14289 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014290 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14291 msm_routing_put_port_mixer),
14292};
14293
Karthikeyan Mani57550082018-05-03 18:43:58 -070014294static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14295 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14296 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14297 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14298 msm_routing_put_port_mixer),
14299};
14300
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014301static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014302 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14303 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014304 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14305 msm_routing_put_port_mixer),
14306};
14307
14308static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014309 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14310 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014311 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014313 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14314 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014315 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14316 msm_routing_put_port_mixer),
14317};
14318
14319static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014320 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14321 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014322 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014324 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14325 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014326 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14327 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014328 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14329 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014330 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014332 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14333 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014334 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014336 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14337 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014338 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014340 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14341 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014342 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014344 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14345 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014346 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014348 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14349 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014350 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014352 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14353 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014354 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14355 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014356 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14357 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014358 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14359 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014360};
14361
14362static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014363 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14364 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014365 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14366 msm_routing_put_port_mixer),
14367};
14368
14369static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014370 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14371 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014372 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014374 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14375 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014376 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014378 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14379 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014380 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014382 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14383 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014384 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014386 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14387 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014388 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014390 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14391 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014392 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014394 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14395 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014396 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014398 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14399 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014400 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014402 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14403 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014404 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14405 msm_routing_put_port_mixer),
14406};
14407
Rohit Kumara5077932017-09-10 22:05:05 +053014408static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014409 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14410 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014411 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014413 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14414 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014415 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014417 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14418 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014419 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014421 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14422 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014423 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014425 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14426 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014427 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014429 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14430 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014431 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014433 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14434 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014435 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14436 msm_routing_put_port_mixer),
14437};
14438
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014439static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014440 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14441 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014442 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14443 msm_routing_get_port_mixer,
14444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014445 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14446 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014447 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14448 msm_routing_get_port_mixer,
14449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014450 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14451 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014452 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14453 msm_routing_get_port_mixer,
14454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014455 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14456 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014457 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14458 msm_routing_get_port_mixer,
14459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014460 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14461 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014462 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14463 msm_routing_get_port_mixer,
14464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014465 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14466 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014467 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14468 msm_routing_get_port_mixer,
14469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014470 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14471 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014472 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14473 msm_routing_get_port_mixer,
14474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014475 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14476 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014477 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14478 msm_routing_get_port_mixer,
14479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014480 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14481 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014482 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14483 msm_routing_get_port_mixer,
14484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014485 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14486 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014487 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14488 msm_routing_get_port_mixer,
14489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014490 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14491 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014492 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14493 msm_routing_get_port_mixer,
14494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014495 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14496 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014497 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14498 msm_routing_get_port_mixer,
14499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014500 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14501 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014502 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14503 msm_routing_get_port_mixer,
14504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014505 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14506 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014507 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14508 msm_routing_get_port_mixer,
14509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014510 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14511 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014512 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14513 msm_routing_get_port_mixer,
14514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014515 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14516 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014517 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14518 msm_routing_get_port_mixer,
14519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014520 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14521 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014522 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14523 msm_routing_get_port_mixer,
14524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014525 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14526 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014527 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14528 msm_routing_get_port_mixer,
14529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014530 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14531 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014532 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14533 msm_routing_get_port_mixer,
14534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014535 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14536 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014537 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14538 msm_routing_get_port_mixer,
14539 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014540};
14541
14542static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014543 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14544 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014545 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14546 msm_routing_get_port_mixer,
14547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014548 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14549 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014550 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14551 msm_routing_get_port_mixer,
14552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014553 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14554 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014555 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14556 msm_routing_get_port_mixer,
14557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014558 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14559 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014560 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14561 msm_routing_get_port_mixer,
14562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014563 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14564 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014565 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14566 msm_routing_get_port_mixer,
14567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014568 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14569 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014570 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14571 msm_routing_get_port_mixer,
14572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014573 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14574 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014575 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14576 msm_routing_get_port_mixer,
14577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014578 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14579 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014580 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14581 msm_routing_get_port_mixer,
14582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014583 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14584 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014585 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14586 msm_routing_get_port_mixer,
14587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014588 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14589 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014590 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14591 msm_routing_get_port_mixer,
14592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014593 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14594 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014595 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14596 msm_routing_get_port_mixer,
14597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014598 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14599 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014600 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14601 msm_routing_get_port_mixer,
14602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014603 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14604 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014605 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14606 msm_routing_get_port_mixer,
14607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014608 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14609 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014610 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14611 msm_routing_get_port_mixer,
14612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014613 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14614 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014615 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14616 msm_routing_get_port_mixer,
14617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014618 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14619 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014620 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14621 msm_routing_get_port_mixer,
14622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014623 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14624 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014625 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14626 msm_routing_get_port_mixer,
14627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014628 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14629 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014630 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14631 msm_routing_get_port_mixer,
14632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014633 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14634 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014635 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14636 msm_routing_get_port_mixer,
14637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014638 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14639 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014640 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14641 msm_routing_get_port_mixer,
14642 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014643};
14644
14645static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014646 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14647 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014648 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14649 msm_routing_get_port_mixer,
14650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014651 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14652 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014653 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14654 msm_routing_get_port_mixer,
14655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014656 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14657 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014658 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14659 msm_routing_get_port_mixer,
14660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014661 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14662 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014663 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14664 msm_routing_get_port_mixer,
14665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014666 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14667 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014668 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14669 msm_routing_get_port_mixer,
14670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014671 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14672 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014673 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14674 msm_routing_get_port_mixer,
14675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014676 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14677 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014678 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14679 msm_routing_get_port_mixer,
14680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014681 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14682 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014683 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14684 msm_routing_get_port_mixer,
14685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014686 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14687 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014688 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14689 msm_routing_get_port_mixer,
14690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014691 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14692 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014693 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14694 msm_routing_get_port_mixer,
14695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014696 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14697 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014698 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14699 msm_routing_get_port_mixer,
14700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014701 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014703 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14704 msm_routing_get_port_mixer,
14705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014706 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14707 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014708 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14709 msm_routing_get_port_mixer,
14710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014711 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14712 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014713 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14714 msm_routing_get_port_mixer,
14715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014716 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14717 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014718 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14719 msm_routing_get_port_mixer,
14720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014721 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014723 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14724 msm_routing_get_port_mixer,
14725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014726 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14727 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014728 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14729 msm_routing_get_port_mixer,
14730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014731 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14732 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014733 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14734 msm_routing_get_port_mixer,
14735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014736 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14737 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014738 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14739 msm_routing_get_port_mixer,
14740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014741 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14742 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014743 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14744 msm_routing_get_port_mixer,
14745 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014746};
14747
14748static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014749 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14750 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014751 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14752 msm_routing_get_port_mixer,
14753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014754 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14755 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014756 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14757 msm_routing_get_port_mixer,
14758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014759 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14760 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014761 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14762 msm_routing_get_port_mixer,
14763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014764 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14765 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014766 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14767 msm_routing_get_port_mixer,
14768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014769 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14770 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014771 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14772 msm_routing_get_port_mixer,
14773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014774 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14775 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014776 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14777 msm_routing_get_port_mixer,
14778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014779 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14780 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014781 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14782 msm_routing_get_port_mixer,
14783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014784 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14785 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014786 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14787 msm_routing_get_port_mixer,
14788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014789 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14790 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014791 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14792 msm_routing_get_port_mixer,
14793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014794 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14795 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014796 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14797 msm_routing_get_port_mixer,
14798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014799 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14800 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014801 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14802 msm_routing_get_port_mixer,
14803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014804 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14805 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014806 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14807 msm_routing_get_port_mixer,
14808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014809 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14810 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014811 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14812 msm_routing_get_port_mixer,
14813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014814 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14815 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014816 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14817 msm_routing_get_port_mixer,
14818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014819 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14820 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014821 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14822 msm_routing_get_port_mixer,
14823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014824 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14825 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014826 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14827 msm_routing_get_port_mixer,
14828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014829 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014831 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14832 msm_routing_get_port_mixer,
14833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014834 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14835 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014836 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14837 msm_routing_get_port_mixer,
14838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014839 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14840 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014841 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14842 msm_routing_get_port_mixer,
14843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014844 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14845 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014846 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14847 msm_routing_get_port_mixer,
14848 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014849};
14850
14851static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014852 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14853 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014854 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14855 msm_routing_get_port_mixer,
14856 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014857 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14858 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014859 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14860 msm_routing_get_port_mixer,
14861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014862 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14863 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014864 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14865 msm_routing_get_port_mixer,
14866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014867 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14868 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014869 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14870 msm_routing_get_port_mixer,
14871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014872 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14873 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014874 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14875 msm_routing_get_port_mixer,
14876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014877 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14878 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014879 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14880 msm_routing_get_port_mixer,
14881 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014882 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14883 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014884 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14885 msm_routing_get_port_mixer,
14886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014887 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14888 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014889 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14890 msm_routing_get_port_mixer,
14891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014892 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14893 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014894 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14895 msm_routing_get_port_mixer,
14896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014897 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14898 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014899 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14900 msm_routing_get_port_mixer,
14901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014902 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14903 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014904 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14905 msm_routing_get_port_mixer,
14906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014907 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14908 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014909 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14910 msm_routing_get_port_mixer,
14911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014912 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14913 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014914 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14915 msm_routing_get_port_mixer,
14916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014917 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14918 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014919 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14920 msm_routing_get_port_mixer,
14921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014922 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14923 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014924 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14925 msm_routing_get_port_mixer,
14926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014927 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14928 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014929 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14930 msm_routing_get_port_mixer,
14931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014932 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14933 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014934 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14935 msm_routing_get_port_mixer,
14936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014937 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14938 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014939 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14940 msm_routing_get_port_mixer,
14941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014942 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14943 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014944 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14945 msm_routing_get_port_mixer,
14946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014947 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14948 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014949 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14950 msm_routing_get_port_mixer,
14951 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014952};
14953
14954static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014955 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14956 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014957 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14958 msm_routing_get_port_mixer,
14959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014960 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14961 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014962 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14963 msm_routing_get_port_mixer,
14964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014965 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14966 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014967 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14968 msm_routing_get_port_mixer,
14969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014970 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14971 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014972 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14973 msm_routing_get_port_mixer,
14974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014975 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14976 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014977 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14978 msm_routing_get_port_mixer,
14979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014980 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14981 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014982 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14983 msm_routing_get_port_mixer,
14984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014985 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14986 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014987 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14988 msm_routing_get_port_mixer,
14989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014990 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14991 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014992 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14993 msm_routing_get_port_mixer,
14994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014995 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14996 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014997 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14998 msm_routing_get_port_mixer,
14999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015000 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15001 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015002 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15003 msm_routing_get_port_mixer,
15004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015005 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15006 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015007 MSM_BACKEND_DAI_SEC_TDM_TX_2, 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_TDM_TX_3", SND_SOC_NOPM,
15011 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015012 MSM_BACKEND_DAI_SEC_TDM_TX_3, 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_TDM_TX_0", SND_SOC_NOPM,
15016 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015017 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
15021 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015022 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
15026 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015027 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
15031 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015032 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015037 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15041 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015042 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15046 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015047 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15051 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015052 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15053 msm_routing_get_port_mixer,
15054 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015055};
15056
15057static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015058 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15059 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015060 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15061 msm_routing_get_port_mixer,
15062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015063 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15064 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015065 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15066 msm_routing_get_port_mixer,
15067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015068 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15069 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015070 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15071 msm_routing_get_port_mixer,
15072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015073 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15074 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015075 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15076 msm_routing_get_port_mixer,
15077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015078 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15079 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015080 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15081 msm_routing_get_port_mixer,
15082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015083 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15084 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015085 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15086 msm_routing_get_port_mixer,
15087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015088 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15089 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015090 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15091 msm_routing_get_port_mixer,
15092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015093 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15094 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015095 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15096 msm_routing_get_port_mixer,
15097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015098 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15099 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015100 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15101 msm_routing_get_port_mixer,
15102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015103 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15104 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015105 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15106 msm_routing_get_port_mixer,
15107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015108 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15109 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015110 MSM_BACKEND_DAI_SEC_TDM_TX_2, 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_TDM_TX_3", SND_SOC_NOPM,
15114 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015115 MSM_BACKEND_DAI_SEC_TDM_TX_3, 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_TDM_TX_0", SND_SOC_NOPM,
15119 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015120 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
15124 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015125 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
15129 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015130 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
15134 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015135 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
15139 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015140 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15144 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015145 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15149 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015150 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15154 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015155 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15156 msm_routing_get_port_mixer,
15157 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015158};
15159
15160static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015161 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15162 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015163 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15164 msm_routing_get_port_mixer,
15165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015166 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15167 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015168 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15169 msm_routing_get_port_mixer,
15170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015171 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15172 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015173 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15174 msm_routing_get_port_mixer,
15175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015176 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15177 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015178 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15179 msm_routing_get_port_mixer,
15180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015181 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15182 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015183 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15184 msm_routing_get_port_mixer,
15185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015186 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15187 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015188 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15189 msm_routing_get_port_mixer,
15190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015191 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15192 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015193 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15194 msm_routing_get_port_mixer,
15195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015196 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15197 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015198 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15199 msm_routing_get_port_mixer,
15200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015201 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15202 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015203 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15204 msm_routing_get_port_mixer,
15205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015206 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15207 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015208 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15209 msm_routing_get_port_mixer,
15210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015211 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15212 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015213 MSM_BACKEND_DAI_SEC_TDM_TX_2, 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_TDM_TX_3", SND_SOC_NOPM,
15217 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015218 MSM_BACKEND_DAI_SEC_TDM_TX_3, 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_TDM_TX_0", SND_SOC_NOPM,
15222 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015223 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
15227 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015228 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
15232 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015233 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
15237 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015238 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
15242 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015243 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15247 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015248 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15252 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015253 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15257 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015258 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15259 msm_routing_get_port_mixer,
15260 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015261};
15262
Derek Chenfdcc0982018-10-02 15:14:03 -070015263static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15264 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15265 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15266 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15267 msm_routing_get_port_mixer,
15268 msm_routing_put_port_mixer),
15269};
15270
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015271static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015272 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15273 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015274 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15275 msm_routing_get_port_mixer,
15276 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015277 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15278 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015279 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15280 msm_routing_get_port_mixer,
15281 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015282 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15283 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015284 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15285 msm_routing_get_port_mixer,
15286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015287 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15288 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015289 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15290 msm_routing_get_port_mixer,
15291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015292 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15293 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015294 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15295 msm_routing_get_port_mixer,
15296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015297 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15298 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015299 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15300 msm_routing_get_port_mixer,
15301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015302 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15303 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015304 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15305 msm_routing_get_port_mixer,
15306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015307 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15308 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015309 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15310 msm_routing_get_port_mixer,
15311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015312 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15313 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015314 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15315 msm_routing_get_port_mixer,
15316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015317 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15318 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015319 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15320 msm_routing_get_port_mixer,
15321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015322 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15323 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015324 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15325 msm_routing_get_port_mixer,
15326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015327 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15328 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015329 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15330 msm_routing_get_port_mixer,
15331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015332 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15333 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015334 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15335 msm_routing_get_port_mixer,
15336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015337 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15338 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015339 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15340 msm_routing_get_port_mixer,
15341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015342 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15343 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015344 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15345 msm_routing_get_port_mixer,
15346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015347 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15348 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015349 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15350 msm_routing_get_port_mixer,
15351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015352 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15353 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015354 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15355 msm_routing_get_port_mixer,
15356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015357 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15358 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015359 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15360 msm_routing_get_port_mixer,
15361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015362 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15363 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015364 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15365 msm_routing_get_port_mixer,
15366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015367 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15368 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015369 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15370 msm_routing_get_port_mixer,
15371 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015372};
15373
15374static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015375 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15376 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015377 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15378 msm_routing_get_port_mixer,
15379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015380 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15381 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015382 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15383 msm_routing_get_port_mixer,
15384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015385 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15386 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015387 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15388 msm_routing_get_port_mixer,
15389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015390 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15391 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015392 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15393 msm_routing_get_port_mixer,
15394 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015395 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15396 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015397 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15398 msm_routing_get_port_mixer,
15399 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015400 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15401 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015402 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15403 msm_routing_get_port_mixer,
15404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015405 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15406 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015407 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15408 msm_routing_get_port_mixer,
15409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015410 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15411 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015412 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15413 msm_routing_get_port_mixer,
15414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015415 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15416 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015417 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15418 msm_routing_get_port_mixer,
15419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015420 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15421 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015422 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15423 msm_routing_get_port_mixer,
15424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015425 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15426 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015427 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15428 msm_routing_get_port_mixer,
15429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015430 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15431 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015432 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15433 msm_routing_get_port_mixer,
15434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015435 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15436 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015437 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15438 msm_routing_get_port_mixer,
15439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015440 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15441 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015442 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15443 msm_routing_get_port_mixer,
15444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015445 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15446 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015447 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15448 msm_routing_get_port_mixer,
15449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015450 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15451 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015452 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15453 msm_routing_get_port_mixer,
15454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015455 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15456 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015457 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15458 msm_routing_get_port_mixer,
15459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015460 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15461 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015462 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15463 msm_routing_get_port_mixer,
15464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015465 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15466 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015467 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15468 msm_routing_get_port_mixer,
15469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015470 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15471 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015472 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15473 msm_routing_get_port_mixer,
15474 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015475};
15476
15477static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015478 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15479 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015480 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15481 msm_routing_get_port_mixer,
15482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015483 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15484 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015485 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15486 msm_routing_get_port_mixer,
15487 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015488 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15489 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015490 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15491 msm_routing_get_port_mixer,
15492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015493 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15494 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015495 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15496 msm_routing_get_port_mixer,
15497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015498 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15499 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015500 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15501 msm_routing_get_port_mixer,
15502 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015503 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15504 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015505 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15506 msm_routing_get_port_mixer,
15507 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015508 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15509 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015510 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15511 msm_routing_get_port_mixer,
15512 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015513 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15514 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015515 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15516 msm_routing_get_port_mixer,
15517 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015518 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15519 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015520 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15521 msm_routing_get_port_mixer,
15522 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015523 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15524 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015525 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15526 msm_routing_get_port_mixer,
15527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015528 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15529 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015530 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15531 msm_routing_get_port_mixer,
15532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015533 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15534 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015535 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15536 msm_routing_get_port_mixer,
15537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015538 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15539 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015540 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15541 msm_routing_get_port_mixer,
15542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015543 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15544 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015545 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15546 msm_routing_get_port_mixer,
15547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015548 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15549 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015550 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15551 msm_routing_get_port_mixer,
15552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015553 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15554 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015555 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15556 msm_routing_get_port_mixer,
15557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015558 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15559 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015560 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15561 msm_routing_get_port_mixer,
15562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015563 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15564 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015565 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15566 msm_routing_get_port_mixer,
15567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015568 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15569 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015570 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15571 msm_routing_get_port_mixer,
15572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015573 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15574 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015575 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15576 msm_routing_get_port_mixer,
15577 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015578};
15579
15580static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015581 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15582 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015583 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15584 msm_routing_get_port_mixer,
15585 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015586 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15587 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015588 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15589 msm_routing_get_port_mixer,
15590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015591 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15592 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015593 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15594 msm_routing_get_port_mixer,
15595 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015596 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15597 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015598 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15599 msm_routing_get_port_mixer,
15600 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015601 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15602 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015603 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15604 msm_routing_get_port_mixer,
15605 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015606 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15607 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015608 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15609 msm_routing_get_port_mixer,
15610 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015611 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15612 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015613 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15614 msm_routing_get_port_mixer,
15615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015616 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15617 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015618 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15619 msm_routing_get_port_mixer,
15620 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015621 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15622 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015623 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15624 msm_routing_get_port_mixer,
15625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015626 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15627 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015628 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15629 msm_routing_get_port_mixer,
15630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015631 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15632 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015633 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15634 msm_routing_get_port_mixer,
15635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015636 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15637 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015638 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15639 msm_routing_get_port_mixer,
15640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015641 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15642 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015643 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15644 msm_routing_get_port_mixer,
15645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015646 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15647 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015648 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15649 msm_routing_get_port_mixer,
15650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015651 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15652 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015653 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15654 msm_routing_get_port_mixer,
15655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015656 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15657 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015658 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15659 msm_routing_get_port_mixer,
15660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015661 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15662 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015663 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15664 msm_routing_get_port_mixer,
15665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015666 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15667 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015668 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15669 msm_routing_get_port_mixer,
15670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015671 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15672 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015673 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15674 msm_routing_get_port_mixer,
15675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015676 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15677 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015678 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15679 msm_routing_get_port_mixer,
15680 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015681};
15682
15683static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015684 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15685 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015686 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15687 msm_routing_get_port_mixer,
15688 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015689 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15690 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015691 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15692 msm_routing_get_port_mixer,
15693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015694 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15695 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015696 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15697 msm_routing_get_port_mixer,
15698 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015699 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15700 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015701 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15702 msm_routing_get_port_mixer,
15703 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015704 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15705 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015706 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15707 msm_routing_get_port_mixer,
15708 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015709 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15710 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015711 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15712 msm_routing_get_port_mixer,
15713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015714 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15715 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015716 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15717 msm_routing_get_port_mixer,
15718 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015719 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15720 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015721 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15722 msm_routing_get_port_mixer,
15723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015724 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15725 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015726 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15727 msm_routing_get_port_mixer,
15728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015729 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15730 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015731 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15732 msm_routing_get_port_mixer,
15733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015734 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15735 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015736 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15737 msm_routing_get_port_mixer,
15738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015739 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15740 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015741 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15742 msm_routing_get_port_mixer,
15743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015744 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15745 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015746 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15747 msm_routing_get_port_mixer,
15748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015749 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15750 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015751 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15752 msm_routing_get_port_mixer,
15753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015754 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15755 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015756 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15757 msm_routing_get_port_mixer,
15758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015759 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15760 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015761 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15762 msm_routing_get_port_mixer,
15763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015764 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15765 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015766 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15767 msm_routing_get_port_mixer,
15768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015769 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15770 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015771 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15772 msm_routing_get_port_mixer,
15773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015774 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15775 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015776 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15777 msm_routing_get_port_mixer,
15778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015779 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15780 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015781 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15782 msm_routing_get_port_mixer,
15783 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015784};
15785
15786static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015787 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15788 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015789 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15790 msm_routing_get_port_mixer,
15791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015792 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15793 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015794 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15795 msm_routing_get_port_mixer,
15796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015797 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15798 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015799 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15800 msm_routing_get_port_mixer,
15801 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015802 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15803 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015804 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15805 msm_routing_get_port_mixer,
15806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015807 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15808 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015809 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15810 msm_routing_get_port_mixer,
15811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015812 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15813 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015814 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15815 msm_routing_get_port_mixer,
15816 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015817 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15818 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015819 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15820 msm_routing_get_port_mixer,
15821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015822 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15823 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015824 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15825 msm_routing_get_port_mixer,
15826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015827 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15828 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015829 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15830 msm_routing_get_port_mixer,
15831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015832 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15833 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015834 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15835 msm_routing_get_port_mixer,
15836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015837 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15838 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015839 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
15843 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015844 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_TDM_TX_0", SND_SOC_NOPM,
15848 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015849 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
15853 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015854 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
15858 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015859 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
15863 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015864 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015869 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15873 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015874 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15878 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015879 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15883 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015884 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15885 msm_routing_get_port_mixer,
15886 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015887};
15888
15889static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015890 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15891 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015892 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15893 msm_routing_get_port_mixer,
15894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015895 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15896 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015897 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15898 msm_routing_get_port_mixer,
15899 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015900 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15901 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015902 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15903 msm_routing_get_port_mixer,
15904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015905 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15906 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015907 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15908 msm_routing_get_port_mixer,
15909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015910 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15911 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015912 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15913 msm_routing_get_port_mixer,
15914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015915 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15916 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015917 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15918 msm_routing_get_port_mixer,
15919 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015920 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15921 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015922 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15923 msm_routing_get_port_mixer,
15924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015925 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15926 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015927 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15928 msm_routing_get_port_mixer,
15929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015930 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15931 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015932 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15933 msm_routing_get_port_mixer,
15934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015935 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15936 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015937 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15938 msm_routing_get_port_mixer,
15939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015940 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15941 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015942 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
15946 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015947 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_TDM_TX_0", SND_SOC_NOPM,
15951 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015952 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
15956 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015957 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
15961 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015962 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
15966 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015967 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
15971 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015972 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15976 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015977 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015982 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15986 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015987 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15988 msm_routing_get_port_mixer,
15989 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015990};
15991
15992static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015993 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15994 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015995 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15996 msm_routing_get_port_mixer,
15997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015998 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15999 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016000 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16001 msm_routing_get_port_mixer,
16002 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016003 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16004 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016005 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16006 msm_routing_get_port_mixer,
16007 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016008 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16009 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016010 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16011 msm_routing_get_port_mixer,
16012 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016013 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16014 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016015 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16016 msm_routing_get_port_mixer,
16017 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016018 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16019 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016020 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16021 msm_routing_get_port_mixer,
16022 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016023 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16024 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016025 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16026 msm_routing_get_port_mixer,
16027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016028 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16029 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016030 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16031 msm_routing_get_port_mixer,
16032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016033 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16034 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016035 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16036 msm_routing_get_port_mixer,
16037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016038 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16039 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016040 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16041 msm_routing_get_port_mixer,
16042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016043 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16044 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016045 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
16049 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016050 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_TDM_TX_0", SND_SOC_NOPM,
16054 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016055 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
16059 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016060 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
16064 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016065 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
16069 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016070 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
16074 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016075 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16079 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016080 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16084 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016085 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16089 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016090 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16091 msm_routing_get_port_mixer,
16092 msm_routing_put_port_mixer),
16093};
16094
16095static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016096 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16097 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016098 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16099 msm_routing_get_port_mixer,
16100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016101 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16102 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016103 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16104 msm_routing_get_port_mixer,
16105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016106 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16107 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016108 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16109 msm_routing_get_port_mixer,
16110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016111 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16112 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016113 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16114 msm_routing_get_port_mixer,
16115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016116 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16117 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016118 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16119 msm_routing_get_port_mixer,
16120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016121 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16122 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016123 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16124 msm_routing_get_port_mixer,
16125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016126 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16127 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016128 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16129 msm_routing_get_port_mixer,
16130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016131 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16132 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016133 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16134 msm_routing_get_port_mixer,
16135 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016136 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16137 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016138 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16139 msm_routing_get_port_mixer,
16140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016141 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16142 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016143 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16144 msm_routing_get_port_mixer,
16145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016146 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16147 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016148 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
16152 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016153 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_TDM_TX_0", SND_SOC_NOPM,
16157 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016158 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
16162 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016163 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
16167 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016168 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
16172 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016173 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
16177 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016178 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016183 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16187 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016188 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016193 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16194 msm_routing_get_port_mixer,
16195 msm_routing_put_port_mixer),
16196};
16197
16198static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016199 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16200 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016201 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16202 msm_routing_get_port_mixer,
16203 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016204 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16205 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016206 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16207 msm_routing_get_port_mixer,
16208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016209 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16210 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016211 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16212 msm_routing_get_port_mixer,
16213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016214 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16215 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016216 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16217 msm_routing_get_port_mixer,
16218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016219 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16220 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016221 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16222 msm_routing_get_port_mixer,
16223 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016224 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16225 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016226 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16227 msm_routing_get_port_mixer,
16228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016229 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16230 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016231 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16232 msm_routing_get_port_mixer,
16233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016234 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16235 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016236 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16237 msm_routing_get_port_mixer,
16238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016239 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16240 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016241 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16242 msm_routing_get_port_mixer,
16243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016244 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16245 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016246 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16247 msm_routing_get_port_mixer,
16248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016249 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16250 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016251 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
16255 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016256 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
16260 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016261 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
16265 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016266 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
16270 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016271 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
16275 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016276 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
16280 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016281 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16285 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016286 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16290 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016291 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16295 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016296 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16297 msm_routing_get_port_mixer,
16298 msm_routing_put_port_mixer),
16299};
16300
16301static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016302 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16303 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016304 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16305 msm_routing_get_port_mixer,
16306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016307 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16308 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016309 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16310 msm_routing_get_port_mixer,
16311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016312 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16313 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016314 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16315 msm_routing_get_port_mixer,
16316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016317 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16318 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016319 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16320 msm_routing_get_port_mixer,
16321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016322 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16323 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016324 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16325 msm_routing_get_port_mixer,
16326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016327 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16328 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016329 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16330 msm_routing_get_port_mixer,
16331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016332 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16333 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016334 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16335 msm_routing_get_port_mixer,
16336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016337 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16338 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016339 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16340 msm_routing_get_port_mixer,
16341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016342 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16343 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016344 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16345 msm_routing_get_port_mixer,
16346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016347 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16348 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016349 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16350 msm_routing_get_port_mixer,
16351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016352 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16353 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016354 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
16358 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016359 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
16363 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016364 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
16368 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016369 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
16373 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016374 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
16378 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016379 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
16383 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016384 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16388 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016389 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16393 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016394 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16398 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016399 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16400 msm_routing_get_port_mixer,
16401 msm_routing_put_port_mixer),
16402};
16403
16404static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016405 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16406 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016407 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16408 msm_routing_get_port_mixer,
16409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016410 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16411 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016412 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16413 msm_routing_get_port_mixer,
16414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016415 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16416 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016417 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16418 msm_routing_get_port_mixer,
16419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016420 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16421 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016422 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16423 msm_routing_get_port_mixer,
16424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016425 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16426 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016427 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16428 msm_routing_get_port_mixer,
16429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016430 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16431 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016432 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16433 msm_routing_get_port_mixer,
16434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016435 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16436 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016437 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16438 msm_routing_get_port_mixer,
16439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016440 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16441 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016442 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16443 msm_routing_get_port_mixer,
16444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016445 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16446 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016447 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16448 msm_routing_get_port_mixer,
16449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016450 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16451 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016452 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16453 msm_routing_get_port_mixer,
16454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016455 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16456 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016457 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
16461 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016462 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
16466 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016467 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
16471 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016472 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
16476 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016477 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
16481 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016482 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
16486 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016487 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16491 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016492 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16496 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016497 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16501 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016502 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16503 msm_routing_get_port_mixer,
16504 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016505};
16506
16507static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016508 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16509 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016510 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016512 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16513 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016514 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016516 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16517 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016518 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016520 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16521 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016522 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016524 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16525 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016526 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016528 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16529 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016530 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016532 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16533 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016534 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16535 msm_routing_put_port_mixer),
16536};
16537
16538static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016539 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16540 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016541 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016543 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16544 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016545 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016547 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16548 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016549 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16550 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016551 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16552 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016553 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016555 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16556 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016557 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016559 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16560 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016561 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016563 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16564 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016565 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016567 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16568 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016569 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016571 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16572 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016573 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16574 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016575};
16576
16577static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016578 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16579 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016580 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16581 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016582 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16583 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016584 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16585 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016586 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16587 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016588 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16589 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016590 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16591 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016592 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16593 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016594 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16595 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016596 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16597 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016598 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16599 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016600 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16601 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016602 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16603 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016604 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16605 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016606 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16607 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016608 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16609 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016610 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16611 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16612 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16613 msm_routing_put_listen_mixer),
16614 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16615 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16616 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16617 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016618 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16619 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16620 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16621 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016622 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16623 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16624 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16625 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016626 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16627 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16628 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16629 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016630};
16631
16632static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016633 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16634 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016635 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16636 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016637 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16638 SND_SOC_NOPM,
16639 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016640 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16641 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016642 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16643 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016644 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16645 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016646 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16647 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016648 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16649 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016650 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16651 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016652 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16653 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016654 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16655 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016656 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16657 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016658 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16659 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016660 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16661 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016662 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16663 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016664 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16665 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016666 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16667 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16668 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16669 msm_routing_put_listen_mixer),
16670 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16671 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16672 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16673 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016674 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16675 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16676 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16677 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016678 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16679 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16680 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16681 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016682 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16683 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16684 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16685 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016686};
16687
16688static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016689 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16690 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016691 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16692 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016693 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16694 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016695 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16696 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016697 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16698 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016699 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16700 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016701 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16702 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016703 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16704 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016705 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16706 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016707 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16708 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016709 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16710 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016711 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16712 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016713 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16714 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016715 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16716 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016717 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16718 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016719 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16720 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016721 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16722 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16723 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16724 msm_routing_put_listen_mixer),
16725 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16726 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16727 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16728 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016729 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16730 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16731 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16732 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016733 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16734 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16735 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16736 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016737 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16738 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16739 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16740 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016741};
16742
16743static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016744 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16745 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016746 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16747 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016748 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16749 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016750 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16751 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016752 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16753 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016754 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16755 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016756 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16757 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016758 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16759 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016760 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16761 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016762 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16763 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016764 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16765 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016766 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16767 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016768 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16769 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016770 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16771 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016772 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16773 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016774 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16775 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016776 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16777 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16778 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16779 msm_routing_put_listen_mixer),
16780 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16781 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16782 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16783 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016784 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16785 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16786 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16787 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016788 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16789 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16790 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16791 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016792 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16793 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16794 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16795 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016796};
16797
16798static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016799 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16800 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016801 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16802 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016803 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16804 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016805 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16806 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016807 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16808 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016809 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16810 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016811 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16812 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016813 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16814 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016815 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16816 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016817 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16818 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016819 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16820 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016821 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16822 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016823 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16824 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016825 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16826 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016827 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16828 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016829 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16830 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016831 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16832 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16833 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16834 msm_routing_put_listen_mixer),
16835 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16836 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16837 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16838 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016839 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16840 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16841 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16842 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016843 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16844 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16845 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16846 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016847 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16848 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16849 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16850 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016851};
16852
16853static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016854 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16855 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016856 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16857 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016858 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16859 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016860 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16861 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016862 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16863 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016864 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16865 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016866 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16867 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016868 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16869 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016870 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16871 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016872 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16873 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016874 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16875 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016876 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16877 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016878 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16879 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016880 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16881 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016882 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16883 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016884 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16885 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016886 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16887 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16888 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16889 msm_routing_put_listen_mixer),
16890 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16891 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16892 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16893 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016894 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16895 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16896 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16897 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016898 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16899 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16900 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16901 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016902 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16903 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16904 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16905 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016906};
16907
16908static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016909 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16910 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016911 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16912 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016913 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16914 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016915 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16916 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016917 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16918 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016919 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16920 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016921 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16922 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016923 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16924 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016925 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16926 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016927 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16928 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016929 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16930 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016931 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16932 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016933 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16934 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016935 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16936 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016937 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16938 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016939 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16940 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016941 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16942 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16943 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16944 msm_routing_put_listen_mixer),
16945 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16946 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16947 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16948 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016949 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16950 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16951 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16952 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016953 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16954 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16955 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16956 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016957 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16958 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16959 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16960 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016961};
16962
16963static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016964 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16965 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016966 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16967 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016968 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16969 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016970 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16971 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016972 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16973 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016974 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16975 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016976 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16977 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016978 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16979 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016980 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16981 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016982 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16983 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016984 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16985 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016986 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16987 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016988 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16989 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016990 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16991 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016992 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16993 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016994 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16995 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016996 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16997 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16998 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16999 msm_routing_put_listen_mixer),
17000 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17001 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17002 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17003 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017004 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17005 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17006 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17007 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017008 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17009 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17010 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17011 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017012 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17013 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17014 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17015 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017016};
17017
17018static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
17019 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17020 0, 1, 0, msm_routing_get_switch_mixer,
17021 msm_routing_put_switch_mixer);
17022
17023static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
17024 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17025 0, 1, 0, msm_routing_get_switch_mixer,
17026 msm_routing_put_switch_mixer);
17027
17028static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
17029 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17030 0, 1, 0, msm_routing_get_switch_mixer,
17031 msm_routing_put_switch_mixer);
17032
17033static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
17034 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17035 0, 1, 0, msm_routing_get_switch_mixer,
17036 msm_routing_put_switch_mixer);
17037
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017038static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
17039 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17040 0, 1, 0, msm_routing_get_switch_mixer,
17041 msm_routing_put_switch_mixer);
17042
17043static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017044 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17045 0, 1, 0, msm_routing_get_switch_mixer,
17046 msm_routing_put_switch_mixer);
17047
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017048static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
17049 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17050 0, 1, 0, msm_routing_get_switch_mixer,
17051 msm_routing_put_switch_mixer);
17052
17053static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
17054 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17055 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
17056 msm_routing_put_fm_pcmrx_switch_mixer);
17057
17058static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
17059 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17060 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
17061 msm_routing_put_int0_mi2s_switch_mixer);
17062
17063static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
17064 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17065 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
17066 msm_routing_put_int4_mi2s_switch_mixer);
17067
17068static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
17069 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17070 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
17071 msm_routing_put_pri_mi2s_switch_mixer);
17072
17073static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
17074 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17075 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
17076 msm_routing_put_sec_mi2s_switch_mixer);
17077
17078static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
17079 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17080 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
17081 msm_routing_put_tert_mi2s_switch_mixer);
17082
17083static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
17084 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17085 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
17086 msm_routing_put_quat_mi2s_switch_mixer);
17087
Rohit Kumara5077932017-09-10 22:05:05 +053017088static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
17089 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17090 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
17091 msm_routing_put_quin_mi2s_switch_mixer);
17092
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017093static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
17094 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17095 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17096 msm_routing_put_hfp_switch_mixer);
17097
17098static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
17099 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17100 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17101 msm_routing_put_hfp_switch_mixer);
17102
17103static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
17104 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17105 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17106 msm_routing_put_hfp_switch_mixer);
17107
17108static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
17109 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17110 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17111 msm_routing_put_hfp_switch_mixer);
17112
17113static const struct snd_kcontrol_new usb_switch_mixer_controls =
17114 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17115 0, 1, 0, msm_routing_get_usb_switch_mixer,
17116 msm_routing_put_usb_switch_mixer);
17117
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080017118static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
17119 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17120 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
17121 msm_routing_a2dp_switch_mixer_put);
17122
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017123static const struct soc_enum lsm_port_enum =
17124 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
17125
17126static const char * const lsm_func_text[] = {
17127 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
17128};
17129static const struct soc_enum lsm_func_enum =
17130 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
17131
17132static const struct snd_kcontrol_new lsm_controls[] = {
17133 /* kcontrol of lsm_function */
17134 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17135 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17136 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17137 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17138 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17139 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17140 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17141 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17142 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17143 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17144 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17145 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17146 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17147 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17148 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17149 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17150 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17151 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017152 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17153 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017154 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17155 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017156 /* kcontrol of lsm_port */
17157 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
17158 msm_routing_lsm_port_get,
17159 msm_routing_lsm_port_put),
17160 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
17161 msm_routing_lsm_port_get,
17162 msm_routing_lsm_port_put),
17163 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
17164 msm_routing_lsm_port_get,
17165 msm_routing_lsm_port_put),
17166 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
17167 msm_routing_lsm_port_get,
17168 msm_routing_lsm_port_put),
17169 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
17170 msm_routing_lsm_port_get,
17171 msm_routing_lsm_port_put),
17172 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
17173 msm_routing_lsm_port_get,
17174 msm_routing_lsm_port_put),
17175 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
17176 msm_routing_lsm_port_get,
17177 msm_routing_lsm_port_put),
17178 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
17179 msm_routing_lsm_port_get,
17180 msm_routing_lsm_port_put),
17181};
17182
17183static const char * const aanc_slim_0_rx_text[] = {
17184 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
17185 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
17186};
17187
17188static const struct soc_enum aanc_slim_0_rx_enum =
17189 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
17190 aanc_slim_0_rx_text);
17191
17192static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
17193 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
17194 msm_routing_slim_0_rx_aanc_mux_get,
17195 msm_routing_slim_0_rx_aanc_mux_put)
17196};
17197
Sudheer Papothic07b37a2018-05-04 05:56:47 +053017198static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
17199 struct snd_ctl_elem_value *ucontrol)
17200{
17201 ucontrol->value.integer.value[0] = aanc_level;
17202
17203 return 0;
17204}
17205
17206static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
17207 struct snd_ctl_elem_value *ucontrol)
17208{
17209 int ret = 0;
17210
17211 mutex_lock(&routing_lock);
17212 aanc_level = ucontrol->value.integer.value[0];
17213 pr_debug("%s: value: %ld\n",
17214 __func__, ucontrol->value.integer.value[0]);
17215 ret = afe_set_aanc_noise_level(aanc_level);
17216 mutex_unlock(&routing_lock);
17217
17218 return ret;
17219}
17220
17221static const struct snd_kcontrol_new aanc_noise_level[] = {
17222 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
17223 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
17224};
17225
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017226static int msm_routing_get_stereo_to_custom_stereo_control(
17227 struct snd_kcontrol *kcontrol,
17228 struct snd_ctl_elem_value *ucontrol)
17229{
17230 ucontrol->value.integer.value[0] = is_custom_stereo_on;
17231 return 0;
17232}
17233
17234static int msm_routing_put_stereo_to_custom_stereo_control(
17235 struct snd_kcontrol *kcontrol,
17236 struct snd_ctl_elem_value *ucontrol)
17237{
17238 int flag = 0, i = 0, rc = 0, idx = 0;
17239 int be_index = 0, port_id, topo_id;
17240 unsigned int session_id = 0;
17241 uint16_t op_FL_ip_FL_weight = 0;
17242 uint16_t op_FL_ip_FR_weight = 0;
17243 uint16_t op_FR_ip_FL_weight = 0;
17244 uint16_t op_FR_ip_FR_weight = 0;
17245
17246 flag = ucontrol->value.integer.value[0];
17247 pr_debug("%s E flag %d\n", __func__, flag);
17248
17249 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
17250 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
17251 __func__, is_custom_stereo_on, flag);
17252 return 0;
17253 }
17254 is_custom_stereo_on = flag ? true : false;
17255 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
17256 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
17257 port_id = msm_bedais[be_index].port_id;
17258 if (!msm_bedais[be_index].active)
17259 continue;
17260 if ((port_id != SLIMBUS_0_RX) &&
17261 (port_id != RT_PROXY_PORT_001_RX) &&
17262 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
17263 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
17264 continue;
17265
17266 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
17267 MSM_FRONTEND_DAI_MM_SIZE) {
17268 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
17269 LEGACY_PCM_MODE)
17270 goto skip_send_custom_stereo;
17271 session_id =
17272 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
17273 if (is_custom_stereo_on) {
17274 op_FL_ip_FL_weight =
17275 Q14_GAIN_ZERO_POINT_FIVE;
17276 op_FL_ip_FR_weight =
17277 Q14_GAIN_ZERO_POINT_FIVE;
17278 op_FR_ip_FL_weight =
17279 Q14_GAIN_ZERO_POINT_FIVE;
17280 op_FR_ip_FR_weight =
17281 Q14_GAIN_ZERO_POINT_FIVE;
17282 } else {
17283 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
17284 op_FL_ip_FR_weight = 0;
17285 op_FR_ip_FL_weight = 0;
17286 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
17287 }
17288 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17289 unsigned long copp =
17290 session_copp_map[i]
17291 [SESSION_TYPE_RX][be_index];
17292 if (!test_bit(idx, &copp))
17293 goto skip_send_custom_stereo;
17294 topo_id = adm_get_topology_for_port_copp_idx(
17295 msm_bedais[be_index].port_id, idx);
17296 if (topo_id < 0)
17297 pr_debug("%s:Err:custom stereo topo %d",
17298 __func__, topo_id);
17299 pr_debug("idx %d\n", idx);
17300 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17301 rc = msm_ds2_dap_set_custom_stereo_onoff
17302 (msm_bedais[be_index].port_id,
17303 idx, is_custom_stereo_on);
17304 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17305 rc = dolby_dap_set_custom_stereo_onoff(
17306 msm_bedais[be_index].port_id,
17307 idx, is_custom_stereo_on);
17308 else
17309 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17310 (msm_bedais[be_index].port_id,
17311 idx, session_id,
17312 op_FL_ip_FL_weight,
17313 op_FL_ip_FR_weight,
17314 op_FR_ip_FL_weight,
17315 op_FR_ip_FR_weight);
17316 if (rc < 0)
17317skip_send_custom_stereo:
17318 pr_err("%s: err setting custom stereo\n",
17319 __func__);
17320 }
17321
17322 }
17323 }
17324 return 0;
17325}
17326
17327static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17328 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17329 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17330 msm_routing_put_stereo_to_custom_stereo_control),
17331};
17332
17333static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17334 struct snd_ctl_elem_value *ucontrol)
17335{
17336 return 0;
17337}
17338
17339static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17340 struct snd_ctl_elem_value *ucontrol)
17341{
17342 int i = 0, j;
17343 int num_app_types = ucontrol->value.integer.value[i++];
17344
17345 pr_debug("%s\n", __func__);
17346
17347 memset(app_type_cfg, 0, MAX_APP_TYPES*
17348 sizeof(struct msm_pcm_routing_app_type_data));
17349 if (num_app_types > MAX_APP_TYPES) {
17350 pr_err("%s: number of app types exceed the max supported\n",
17351 __func__);
17352 return -EINVAL;
17353 }
17354 for (j = 0; j < num_app_types; j++) {
17355 app_type_cfg[j].app_type =
17356 ucontrol->value.integer.value[i++];
17357 app_type_cfg[j].sample_rate =
17358 ucontrol->value.integer.value[i++];
17359 app_type_cfg[j].bit_width =
17360 ucontrol->value.integer.value[i++];
17361 }
17362
17363 return 0;
17364}
17365
17366static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17367 struct snd_ctl_elem_value *ucontrol)
17368{
17369 int j, fe_id, be_id, port_type;
17370 int ret = 0;
17371 unsigned long copp;
17372 struct msm_pcm_routing_bdai_data *bedai;
17373 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17374 SESSION_TYPE_RX;
17375 int app_type = ucontrol->value.integer.value[1];
17376 int gain = (ucontrol->value.integer.value[2] +
17377 ucontrol->value.integer.value[3])/2;
17378
17379 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17380 MSM_AFE_PORT_TYPE_TX;
17381
17382 mutex_lock(&routing_lock);
17383 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17384 if (is_be_dai_extproc(be_id))
17385 continue;
17386
17387 bedai = &msm_bedais[be_id];
17388 if (afe_get_port_type(bedai->port_id) != port_type)
17389 continue;
17390
17391 if (!bedai->active)
17392 continue;
17393
17394 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17395 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17396 continue;
17397
17398 if (app_type !=
17399 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17400 continue;
17401
17402 copp = session_copp_map[fe_id][dir][be_id];
17403 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17404 if (!test_bit(j, &copp))
17405 continue;
17406 ret |= adm_set_volume(bedai->port_id, j, gain);
17407 }
17408 }
17409 }
17410 mutex_unlock(&routing_lock);
17411 return ret ? -EINVAL : 0;
17412}
17413
17414static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17415 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17416 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17417 msm_routing_put_app_type_cfg_control),
17418 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17419 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17420};
17421
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017422static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17423 struct snd_ctl_elem_value *ucontrol)
17424{
17425 int copp_idx, fe_id, be_id, port_type;
17426 int ret = 0;
17427 unsigned long copp;
17428 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017429 u8 *packed_params = NULL;
17430 struct param_hdr_v3 param_hdr;
17431 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17432 sizeof(uint32_t));
17433
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017434 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17435 SESSION_TYPE_RX;
17436 int app_type = ucontrol->value.integer.value[1];
17437 int module_id = ucontrol->value.integer.value[2];
17438 int instance_id = ucontrol->value.integer.value[3];
17439 int param_id = ucontrol->value.integer.value[4];
17440 int param_value = ucontrol->value.integer.value[5];
17441
17442 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17443 MSM_AFE_PORT_TYPE_TX;
17444 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17445 __func__, app_type, module_id,
17446 instance_id, param_id, param_value);
17447
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017448 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17449 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017450 return -ENOMEM;
17451
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017452 memset(&param_hdr, 0, sizeof(param_hdr));
17453 param_hdr.module_id = module_id;
17454 param_hdr.instance_id = instance_id;
17455 param_hdr.param_id = param_id;
17456 param_hdr.param_size = sizeof(uint32_t);
17457
17458 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017459
17460 mutex_lock(&routing_lock);
17461 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17462 if (is_be_dai_extproc(be_id))
17463 continue;
17464
17465 bedai = &msm_bedais[be_id];
17466 if (afe_get_port_type(bedai->port_id) != port_type)
17467 continue;
17468
17469 if (!bedai->active)
17470 continue;
17471
17472 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17473 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17474 continue;
17475
17476 if (app_type !=
17477 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17478 continue;
17479
17480 copp = session_copp_map[fe_id][dir][be_id];
17481 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17482 copp_idx++) {
17483 if (!test_bit(copp_idx, &copp))
17484 continue;
17485
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017486 ret = q6common_pack_pp_params(packed_params,
17487 &param_hdr,
17488 (u8 *) &param_value,
17489 &packed_param_size);
17490 if (ret) {
17491 pr_err("%s: Failed to pack params, error %d\n",
17492 __func__, ret);
17493 goto done;
17494 }
17495
17496 ret = adm_set_pp_params(bedai->port_id,
17497 copp_idx, NULL,
17498 packed_params,
17499 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017500 if (ret) {
17501 pr_err("%s: Setting param failed with err=%d\n",
17502 __func__, ret);
17503 ret = -EINVAL;
17504 goto done;
17505 }
17506 }
17507 }
17508 }
17509done:
17510 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017511 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017512 return ret;
17513}
17514
17515static const struct snd_kcontrol_new module_cfg_controls[] = {
17516 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17517 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17518};
17519
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017520static int msm_routing_get_lsm_app_type_cfg_control(
17521 struct snd_kcontrol *kcontrol,
17522 struct snd_ctl_elem_value *ucontrol)
17523{
Meng Wangadbca4f2018-10-29 14:30:13 +080017524 int shift = ((struct soc_multi_mixer_control *)
17525 kcontrol->private_value)->shift;
17526 int i = 0, j = 0;
17527
17528 ucontrol->value.integer.value[i] = num_app_cfg_types;
17529
17530 for (j = 0; j < num_app_cfg_types; ++j) {
17531 ucontrol->value.integer.value[++i] =
17532 lsm_app_type_cfg[j].app_type;
17533 ucontrol->value.integer.value[++i] =
17534 lsm_app_type_cfg[j].sample_rate;
17535 ucontrol->value.integer.value[++i] =
17536 lsm_app_type_cfg[j].bit_width;
17537 if (shift == 1)
17538 ucontrol->value.integer.value[++i] =
17539 lsm_app_type_cfg[j].num_out_channels;
17540 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017541 return 0;
17542}
17543
17544static int msm_routing_put_lsm_app_type_cfg_control(
17545 struct snd_kcontrol *kcontrol,
17546 struct snd_ctl_elem_value *ucontrol)
17547{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017548 int shift = ((struct soc_multi_mixer_control *)
17549 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017550 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017551
Meng Wangadbca4f2018-10-29 14:30:13 +080017552 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017553 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017554 sizeof(struct msm_pcm_routing_app_type_data));
17555
Meng Wangadbca4f2018-10-29 14:30:13 +080017556 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017557 pr_err("%s: number of app types exceed the max supported\n",
17558 __func__);
17559 return -EINVAL;
17560 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017561
Meng Wangadbca4f2018-10-29 14:30:13 +080017562 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017563 lsm_app_type_cfg[j].app_type =
17564 ucontrol->value.integer.value[i++];
17565 lsm_app_type_cfg[j].sample_rate =
17566 ucontrol->value.integer.value[i++];
17567 lsm_app_type_cfg[j].bit_width =
17568 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017569 /* Shift of 1 indicates this is V2 mixer control */
17570 if (shift == 1)
17571 lsm_app_type_cfg[j].num_out_channels =
17572 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017573 }
17574
17575 return 0;
17576}
17577
17578static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17579 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17580 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17581 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017582 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17583 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17584 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017585};
17586
17587static int msm_routing_get_use_ds1_or_ds2_control(
17588 struct snd_kcontrol *kcontrol,
17589 struct snd_ctl_elem_value *ucontrol)
17590{
17591 ucontrol->value.integer.value[0] = is_ds2_on;
17592 return 0;
17593}
17594
17595static int msm_routing_put_use_ds1_or_ds2_control(
17596 struct snd_kcontrol *kcontrol,
17597 struct snd_ctl_elem_value *ucontrol)
17598{
17599 is_ds2_on = ucontrol->value.integer.value[0];
17600 return 0;
17601}
17602
17603static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17604 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17605 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17606 msm_routing_put_use_ds1_or_ds2_control),
17607};
17608
17609int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17610 struct snd_ctl_elem_value *ucontrol) {
17611 int rc = 0;
17612 int be_idx = 0;
17613 char *param_value;
17614 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017615 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17616 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017617
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017618 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017619 if (!param_value)
17620 return -ENOMEM;
17621
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017622 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017623 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17624 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17625 break;
17626 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017627 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17628 param_hdr.instance_id = INSTANCE_ID_0;
17629 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17630 param_hdr.param_size = param_size;
17631 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17632 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017633 if (rc) {
17634 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17635 kfree(param_value);
17636 return -EINVAL;
17637 }
17638 update_param_value = (int *)param_value;
17639 ucontrol->value.integer.value[0] = update_param_value[0];
17640
17641 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17642 __func__, update_param_value[0]);
17643 }
17644 kfree(param_value);
17645 return 0;
17646}
17647
17648static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17649 struct snd_ctl_elem_value *ucontrol)
17650{
17651 voc_session_id = ucontrol->value.integer.value[0];
17652
17653 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17654
17655 return 0;
17656}
17657
17658static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17659 struct snd_ctl_elem_value *ucontrol)
17660{
17661 ucontrol->value.integer.value[0] = voc_session_id;
17662
17663 return 0;
17664}
17665
17666static struct snd_kcontrol_new msm_voc_session_controls[] = {
17667 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17668 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17669 msm_voc_session_id_put),
17670};
17671
17672static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17673 struct snd_ctl_elem_info *uinfo)
17674{
17675 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17676 uinfo->count = sizeof(struct sound_focus_param);
17677
17678 return 0;
17679}
17680
17681static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17682 struct snd_ctl_elem_value *ucontrol)
17683{
17684 int ret = 0;
17685 struct sound_focus_param soundFocusData;
17686
17687 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17688 sizeof(struct sound_focus_param));
17689 ret = voc_set_sound_focus(soundFocusData);
17690 if (ret) {
17691 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17692 __func__, ret);
17693
17694 ret = -EINVAL;
17695 }
17696
17697 return ret;
17698}
17699
17700static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17701 struct snd_ctl_elem_value *ucontrol)
17702{
17703 int ret = 0;
17704 struct sound_focus_param soundFocusData;
17705
17706 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17707
17708 ret = voc_get_sound_focus(&soundFocusData);
17709 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017710 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017711 __func__, ret);
17712
17713 ret = -EINVAL;
17714 goto done;
17715 }
17716 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17717 sizeof(struct sound_focus_param));
17718
17719done:
17720 return ret;
17721}
17722
17723static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17724 struct snd_ctl_elem_info *uinfo)
17725{
17726 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17727 uinfo->count = sizeof(struct source_tracking_param);
17728
17729 return 0;
17730}
17731
17732static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17733 struct snd_ctl_elem_value *ucontrol)
17734{
Meng Wang92edfde2018-04-24 12:18:37 +080017735 int ret = 0;
17736 struct source_tracking_param sourceTrackingData;
17737
17738 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17739
17740 ret = voc_get_source_tracking(&sourceTrackingData);
17741 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017742 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080017743 __func__, ret);
17744
17745 ret = -EINVAL;
17746 goto done;
17747 }
17748 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17749 sizeof(struct source_tracking_param));
17750
17751done:
17752 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017753}
17754
17755static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17756 int *copp_idx)
17757{
17758 int i, idx, be_idx;
17759 int ret = 0;
17760 unsigned long copp;
17761
17762 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17763
17764 ret = q6audio_validate_port(port_id);
17765 if (ret < 0) {
17766 pr_err("%s: port validation failed id 0x%x ret %d\n",
17767 __func__, port_id, ret);
17768
17769 ret = -EINVAL;
17770 goto done;
17771 }
17772
17773 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
17774 if (msm_bedais[be_idx].port_id == port_id)
17775 break;
17776 }
17777 if (be_idx >= MSM_BACKEND_DAI_MAX) {
17778 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
17779
17780 ret = -EINVAL;
17781 goto done;
17782 }
17783
17784 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017785 MSM_FRONTEND_DAI_MAX) {
17786 if (!(is_mm_lsm_fe_id(i) &&
17787 route_check_fe_id_adm_support(i)))
17788 continue;
17789
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017790 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17791 copp = session_copp_map[i]
17792 [session_type][be_idx];
17793 if (test_bit(idx, &copp))
17794 break;
17795 }
17796 if (idx >= MAX_COPPS_PER_PORT)
17797 continue;
17798 else
17799 break;
17800 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017801 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017802 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017803
17804 ret = -EINVAL;
17805 goto done;
17806 }
17807 *copp_idx = idx;
17808 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17809
17810done:
17811 return ret;
17812}
17813
17814static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17815 const char *prefix, int *port_id)
17816{
17817 int ret = 0;
17818
17819 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17820
17821 /*
17822 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17823 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17824 * and compare the string with the backend name to derive the port id.
17825 */
17826 if (!strcmp(kcontrol->id.name + strlen(prefix),
17827 "SLIMBUS_0")) {
17828 *port_id = SLIMBUS_0_TX;
17829 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17830 "TERT_MI2S")) {
17831 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17832 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17833 "INT3_MI2S")) {
17834 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017835 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17836 "VA_CDC_DMA_TX_0")) {
17837 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017838 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17839 "TX_CDC_DMA_TX_3")) {
17840 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017841 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17842 "QUIN_TDM_TX_0")) {
17843 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017844 } else {
17845 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17846 __func__, kcontrol->id.name);
17847
17848 ret = -EINVAL;
17849 goto done;
17850 }
17851 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17852 __func__, kcontrol->id.name, *port_id);
17853
17854done:
17855 return ret;
17856}
17857
17858static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17859 struct snd_ctl_elem_value *ucontrol)
17860{
17861 int ret = 0;
17862 struct sound_focus_param soundFocusData;
17863 int port_id, copp_idx;
17864
17865 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17866 "Sound Focus Audio Tx ", &port_id);
17867 if (ret != 0) {
17868 pr_err("%s: Error in deriving port id, err=%d\n",
17869 __func__, ret);
17870
17871 ret = -EINVAL;
17872 goto done;
17873 }
17874
17875 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17876 &copp_idx);
17877 if (ret) {
17878 pr_err("%s: Could not get copp idx for port_id=%d\n",
17879 __func__, port_id);
17880
17881 ret = -EINVAL;
17882 goto done;
17883 }
17884
17885 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17886 sizeof(struct sound_focus_param));
17887
17888 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17889 if (ret) {
17890 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17891 __func__, ret);
17892
17893 ret = -EINVAL;
17894 goto done;
17895 }
17896
17897done:
17898 return ret;
17899}
17900
17901static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17902 struct snd_ctl_elem_value *ucontrol)
17903{
17904 int ret = 0;
17905 struct sound_focus_param soundFocusData;
17906 int port_id, copp_idx;
17907
17908 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17909 "Sound Focus Audio Tx ", &port_id);
17910 if (ret) {
17911 pr_err("%s: Error in deriving port id, err=%d\n",
17912 __func__, ret);
17913
17914 ret = -EINVAL;
17915 goto done;
17916 }
17917
17918 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17919 &copp_idx);
17920 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017921 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017922 __func__, port_id);
17923
17924 ret = -EINVAL;
17925 goto done;
17926 }
17927
17928 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17929 if (ret) {
17930 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17931 __func__, ret);
17932
17933 ret = -EINVAL;
17934 goto done;
17935 }
17936
17937 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17938 sizeof(struct sound_focus_param));
17939
17940done:
17941 return ret;
17942}
17943
17944static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17945 struct snd_ctl_elem_value *ucontrol)
17946{
17947 int ret = 0;
17948 struct source_tracking_param sourceTrackingData;
17949 int port_id, copp_idx;
17950
17951 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17952 "Source Tracking Audio Tx ", &port_id);
17953 if (ret) {
17954 pr_err("%s: Error in deriving port id, err=%d\n",
17955 __func__, ret);
17956
17957 ret = -EINVAL;
17958 goto done;
17959 }
17960
17961 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17962 &copp_idx);
17963 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017964 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017965 __func__, port_id);
17966
17967 ret = -EINVAL;
17968 goto done;
17969 }
17970
17971 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17972 if (ret) {
17973 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17974 __func__, ret);
17975
17976 ret = -EINVAL;
17977 goto done;
17978 }
17979
17980 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17981 sizeof(struct source_tracking_param));
17982
17983done:
17984 return ret;
17985}
17986
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017987static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
17988 struct snd_ctl_elem_info *uinfo)
17989{
17990 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17991 uinfo->count = sizeof(struct doa_tracking_mon_param);
17992
17993 return 0;
17994}
17995
17996static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
17997 struct snd_ctl_elem_value *ucontrol)
17998{
17999 int ret = 0;
18000 struct doa_tracking_mon_param doa_tracking_data;
18001 int port_id, copp_idx;
18002
18003 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
18004 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18005 "Doa Tracking Monitor Listen ", &port_id);
18006 if (ret) {
18007 pr_err("%s: Error in deriving port id, err=%d\n",
18008 __func__, ret);
18009 ret = -EINVAL;
18010 goto done;
18011 }
18012
18013 /*
18014 * If copp id exists for given port id, query adm to get doa data.
18015 * Else query afe for doa tracking params.
18016 * This is to support in cases where LSM directly connects to
18017 * AFE for FFNS.
18018 */
18019 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18020 &copp_idx);
18021 if (!ret)
18022 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
18023 &doa_tracking_data);
18024 else
18025 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
18026
18027 if (ret) {
18028 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
18029 __func__, ret);
18030 ret = -EINVAL;
18031 goto done;
18032 }
18033
18034 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
18035 sizeof(struct doa_tracking_mon_param));
18036done:
18037 return ret;
18038}
18039
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018040static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
18041 {
18042 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18043 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18044 .name = "Sound Focus Voice Tx SLIMBUS_0",
18045 .info = msm_sound_focus_info,
18046 .get = msm_voice_sound_focus_get,
18047 .put = msm_voice_sound_focus_put,
18048 },
18049 {
18050 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18051 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18052 .name = "Source Tracking Voice Tx SLIMBUS_0",
18053 .info = msm_source_tracking_info,
18054 .get = msm_voice_source_tracking_get,
18055 },
18056 {
18057 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18058 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18059 .name = "Sound Focus Audio Tx SLIMBUS_0",
18060 .info = msm_sound_focus_info,
18061 .get = msm_audio_sound_focus_get,
18062 .put = msm_audio_sound_focus_put,
18063 },
18064 {
18065 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18066 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18067 .name = "Source Tracking Audio Tx SLIMBUS_0",
18068 .info = msm_source_tracking_info,
18069 .get = msm_audio_source_tracking_get,
18070 },
18071 {
18072 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18073 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18074 .name = "Sound Focus Voice Tx TERT_MI2S",
18075 .info = msm_sound_focus_info,
18076 .get = msm_voice_sound_focus_get,
18077 .put = msm_voice_sound_focus_put,
18078 },
18079 {
18080 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18081 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18082 .name = "Source Tracking Voice Tx TERT_MI2S",
18083 .info = msm_source_tracking_info,
18084 .get = msm_voice_source_tracking_get,
18085 },
18086 {
18087 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18088 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18089 .name = "Sound Focus Audio Tx TERT_MI2S",
18090 .info = msm_sound_focus_info,
18091 .get = msm_audio_sound_focus_get,
18092 .put = msm_audio_sound_focus_put,
18093 },
18094 {
18095 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18096 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18097 .name = "Source Tracking Audio Tx TERT_MI2S",
18098 .info = msm_source_tracking_info,
18099 .get = msm_audio_source_tracking_get,
18100 },
18101 {
18102 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18103 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18104 .name = "Sound Focus Voice Tx INT3_MI2S",
18105 .info = msm_sound_focus_info,
18106 .get = msm_voice_sound_focus_get,
18107 .put = msm_voice_sound_focus_put,
18108 },
18109 {
18110 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18111 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18112 .name = "Source Tracking Voice Tx INT3_MI2S",
18113 .info = msm_source_tracking_info,
18114 .get = msm_voice_source_tracking_get,
18115 },
18116 {
18117 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18118 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18119 .name = "Sound Focus Audio Tx INT3_MI2S",
18120 .info = msm_sound_focus_info,
18121 .get = msm_audio_sound_focus_get,
18122 .put = msm_audio_sound_focus_put,
18123 },
18124 {
18125 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18126 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18127 .name = "Source Tracking Audio Tx INT3_MI2S",
18128 .info = msm_source_tracking_info,
18129 .get = msm_audio_source_tracking_get,
18130 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018131 {
18132 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18133 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18134 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
18135 .info = msm_sound_focus_info,
18136 .get = msm_voice_sound_focus_get,
18137 .put = msm_voice_sound_focus_put,
18138 },
18139 {
18140 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18141 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18142 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
18143 .info = msm_source_tracking_info,
18144 .get = msm_voice_source_tracking_get,
18145 },
18146 {
18147 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18148 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18149 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
18150 .info = msm_sound_focus_info,
18151 .get = msm_audio_sound_focus_get,
18152 .put = msm_audio_sound_focus_put,
18153 },
18154 {
18155 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18156 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18157 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
18158 .info = msm_source_tracking_info,
18159 .get = msm_audio_source_tracking_get,
18160 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018161 {
18162 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18163 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18164 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
18165 .info = msm_sound_focus_info,
18166 .get = msm_voice_sound_focus_get,
18167 .put = msm_voice_sound_focus_put,
18168 },
18169 {
18170 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18171 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18172 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
18173 .info = msm_source_tracking_info,
18174 .get = msm_voice_source_tracking_get,
18175 },
18176 {
18177 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18178 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18179 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
18180 .info = msm_sound_focus_info,
18181 .get = msm_audio_sound_focus_get,
18182 .put = msm_audio_sound_focus_put,
18183 },
18184 {
18185 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18186 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18187 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
18188 .info = msm_source_tracking_info,
18189 .get = msm_audio_source_tracking_get,
18190 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018191 {
18192 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18193 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18194 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
18195 .info = msm_sound_focus_info,
18196 .get = msm_voice_sound_focus_get,
18197 .put = msm_voice_sound_focus_put,
18198 },
18199 {
18200 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18201 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18202 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
18203 .info = msm_source_tracking_info,
18204 .get = msm_voice_source_tracking_get,
18205 },
18206 {
18207 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18208 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18209 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
18210 .info = msm_sound_focus_info,
18211 .get = msm_audio_sound_focus_get,
18212 .put = msm_audio_sound_focus_put,
18213 },
18214 {
18215 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18216 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18217 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
18218 .info = msm_source_tracking_info,
18219 .get = msm_audio_source_tracking_get,
18220 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018221 {
18222 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18223 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18224 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
18225 .info = msm_doa_tracking_mon_info,
18226 .get = msm_doa_tracking_mon_get,
18227 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018228};
18229
18230static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
18231 struct snd_ctl_elem_value *ucontrol)
18232{
18233 int ret = 0;
18234 int item;
18235 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18236
18237 pr_debug("%s item is %d\n", __func__,
18238 ucontrol->value.enumerated.item[0]);
18239 mutex_lock(&routing_lock);
18240 item = ucontrol->value.enumerated.item[0];
18241 if (item < e->items) {
18242 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18243 __func__, e->shift_l, e->values[item]);
18244 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18245 e->values[item] < MSM_BACKEND_DAI_MAX)
18246 /* Enable feedback TX path */
18247 ret = afe_spk_prot_feed_back_cfg(
18248 msm_bedais[e->values[item]].port_id,
18249 msm_bedais[e->shift_l].port_id, 1, 0, 1);
18250 else {
18251 pr_debug("%s values are out of range item %d\n",
18252 __func__, e->values[item]);
18253 /* Disable feedback TX path */
18254 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18255 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
18256 else
18257 ret = -EINVAL;
18258 }
18259 } else {
18260 pr_err("%s item value is out of range item\n", __func__);
18261 ret = -EINVAL;
18262 }
18263 mutex_unlock(&routing_lock);
18264 return ret;
18265}
18266
18267static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
18268 struct snd_ctl_elem_value *ucontrol)
18269{
18270 int ret = 0;
18271 int item;
18272 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18273
18274 pr_debug("%s item is %d\n", __func__,
18275 ucontrol->value.enumerated.item[0]);
18276 mutex_lock(&routing_lock);
18277 item = ucontrol->value.enumerated.item[0];
18278 if (item < e->items) {
18279 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18280 __func__, e->shift_l, e->values[item]);
18281 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18282 e->values[item] < MSM_BACKEND_DAI_MAX)
18283 /* Enable feedback TX path */
18284 ret = afe_spk_prot_feed_back_cfg(
18285 msm_bedais[e->values[item]].port_id,
18286 msm_bedais[e->shift_l].port_id,
18287 1, 1, 1);
18288 else {
18289 pr_debug("%s values are out of range item %d\n",
18290 __func__, e->values[item]);
18291 /* Disable feedback TX path */
18292 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18293 ret = afe_spk_prot_feed_back_cfg(0,
18294 0, 0, 0, 0);
18295 else
18296 ret = -EINVAL;
18297 }
18298 } else {
18299 pr_err("%s item value is out of range item\n", __func__);
18300 ret = -EINVAL;
18301 }
18302 mutex_unlock(&routing_lock);
18303 return ret;
18304}
18305
18306static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
18307 struct snd_ctl_elem_value *ucontrol)
18308{
18309 pr_debug("%s\n", __func__);
18310 return 0;
18311}
18312
18313static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
18314 struct snd_ctl_elem_value *ucontrol)
18315{
18316 pr_debug("%s\n", __func__);
18317 ucontrol->value.enumerated.item[0] = 0;
18318 return 0;
18319}
18320
18321static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
18322 "ZERO", "SLIM4_TX"
18323};
18324
18325static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
18326 "ZERO", "SLIM4_TX"
18327};
18328
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018329static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
18330 "ZERO", "WSA_CDC_DMA_TX_0"
18331};
18332
18333static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
18334 "ZERO", "WSA_CDC_DMA_TX_0"
18335};
18336
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018337static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
18338 "ZERO", "SENARY_TX"
18339};
18340
18341static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
18342 "ZERO", "INT5_MI2S_TX"
18343};
18344
18345static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
18346 "ZERO", "INT5_MI2S_TX"
18347};
18348
Josh Kirschea69fed2018-12-11 16:15:08 -080018349static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018350 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18351};
18352
Josh Kirschea69fed2018-12-11 16:15:08 -080018353static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018354 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18355};
18356
Josh Kirschea69fed2018-12-11 16:15:08 -080018357static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018358 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18359};
18360
Josh Kirschea69fed2018-12-11 16:15:08 -080018361static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018362 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18363};
18364
18365
Josh Kirschea69fed2018-12-11 16:15:08 -080018366static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018367 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18368};
18369
Josh Kirschea69fed2018-12-11 16:15:08 -080018370static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018371 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18372};
18373
Josh Kirschea69fed2018-12-11 16:15:08 -080018374static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018375 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18376};
18377
18378static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18379 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18380 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18381 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18382
18383static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18384 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18385 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18386 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18387
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018388static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18389 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18390 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18391 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18392
18393static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18394 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18395 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18396 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18397
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018398static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18399 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18400 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18401 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18402
18403static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18404 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18405 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18406 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18407 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18408
18409static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18410 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18411 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18412 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18413 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18414
18415static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18416 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18417 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18418 spkr_prot_put_vi_lch_port);
18419
18420static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18421 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18422 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18423 spkr_prot_put_vi_rch_port);
18424
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018425static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18426 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18427 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18428 spkr_prot_put_vi_lch_port);
18429
18430static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18431 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18432 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18433 spkr_prot_put_vi_rch_port);
18434
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018435static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18436 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18437 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18438 spkr_prot_put_vi_lch_port);
18439
18440static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18441 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18442 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18443 spkr_prot_put_vi_lch_port);
18444
18445static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18446 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18447 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18448 spkr_prot_put_vi_rch_port);
18449
18450static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18451 /* Frontend AIF */
18452 /* Widget name equals to Front-End DAI name<Need confirmation>,
18453 * Stream name must contains substring of front-end dai name
18454 */
18455 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18456 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18457 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18458 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18459 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18460 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18461 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18462 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18463 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18464 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18465 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18466 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18467 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18468 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18469 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18470 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18471 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018472 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018473 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018474 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18475 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18476 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18477 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18478 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18479 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18480 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18481 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18482 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018483 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018484 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018485 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18486 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18487 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18488 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018489 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018490 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018491 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18492 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018493 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18494 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18495 "VoiceMMode1 Playback", 0, 0, 0, 0),
18496 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18497 "VoiceMMode1 Capture", 0, 0, 0, 0),
18498 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18499 "VoiceMMode2 Playback", 0, 0, 0, 0),
18500 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18501 "VoiceMMode2 Capture", 0, 0, 0, 0),
18502 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18503 0, 0, 0, 0),
18504 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18505 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018506 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18507 0, 0, 0, 0),
18508 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18509 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018510 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18511 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018512 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18513 0, 0, 0, 0),
18514 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18515 0, 0, 0, 0),
18516 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18517 0, 0, 0, 0),
18518 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18519 0, 0, 0, 0),
18520 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18521 0, 0, 0, 0),
18522 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18523 0, 0, 0, 0),
18524 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18525 0, 0, 0, 0),
18526 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18527 0, 0, 0, 0),
18528 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18529 0, 0, 0, 0),
18530 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18531 0, 0, 0, 0),
18532 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18533 0, 0, 0, 0),
18534 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18535 0, 0, 0, 0),
18536 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18537 0, 0, 0, 0),
18538 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18539 0, 0, 0, 0),
18540 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18541 0, 0, 0, 0),
18542 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18543 0, 0, 0, 0),
18544 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18545 0, 0, 0, 0),
18546 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18547 0, 0, 0, 0),
18548 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18549 0, 0, 0, 0),
18550 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18551 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18552 0, 0, 0, 0),
18553 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18554 "INT0 MI2S_RX Hostless Playback",
18555 0, 0, 0, 0),
18556 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18557 "INT4 MI2S_RX Hostless Playback",
18558 0, 0, 0, 0),
18559 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18560 "Primary MI2S_RX Hostless Playback",
18561 0, 0, 0, 0),
18562 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18563 "Secondary MI2S_RX Hostless Playback",
18564 0, 0, 0, 0),
18565 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18566 "Tertiary MI2S_RX Hostless Playback",
18567 0, 0, 0, 0),
18568 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18569 "Quaternary MI2S_RX Hostless Playback",
18570 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018571 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18572 "Quinary MI2S_RX Hostless Playback",
18573 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018574
18575 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18576 0, 0, 0, 0),
18577 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18578 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018579 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18580 0, 0, 0, 0),
18581 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18582 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018583 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18584 0, 0, 0, 0),
18585 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18586 "INT3 MI2S_TX Hostless Capture",
18587 0, 0, 0, 0),
18588 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18589 "Tertiary MI2S_TX Hostless Capture",
18590 0, 0, 0, 0),
18591 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18592 "Secondary MI2S_TX Hostless Capture",
18593 0, 0, 0, 0),
18594 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18595 "Primary MI2S_TX Hostless Capture",
18596 0, 0, 0, 0),
18597 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18598 0, 0, 0, 0),
18599 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18600 0, 0, 0, 0),
18601 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18602 "Quaternary MI2S_TX Hostless Capture",
18603 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018604 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18605 "Quinary MI2S_TX Hostless Capture",
18606 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018607
18608 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18609 "Primary TDM0 Hostless Playback",
18610 0, 0, 0, 0),
18611 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18612 "Primary TDM0 Hostless Capture",
18613 0, 0, 0, 0),
18614 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18615 "Primary TDM1 Hostless Playback",
18616 0, 0, 0, 0),
18617 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18618 "Primary TDM1 Hostless Capture",
18619 0, 0, 0, 0),
18620 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18621 "Primary TDM2 Hostless Playback",
18622 0, 0, 0, 0),
18623 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18624 "Primary TDM2 Hostless Capture",
18625 0, 0, 0, 0),
18626 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18627 "Primary TDM3 Hostless Playback",
18628 0, 0, 0, 0),
18629 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18630 "Primary TDM3 Hostless Capture",
18631 0, 0, 0, 0),
18632 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18633 "Primary TDM4 Hostless Playback",
18634 0, 0, 0, 0),
18635 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18636 "Primary TDM4 Hostless Capture",
18637 0, 0, 0, 0),
18638 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18639 "Primary TDM5 Hostless Playback",
18640 0, 0, 0, 0),
18641 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18642 "Primary TDM5 Hostless Capture",
18643 0, 0, 0, 0),
18644 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18645 "Primary TDM6 Hostless Playback",
18646 0, 0, 0, 0),
18647 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18648 "Primary TDM6 Hostless Capture",
18649 0, 0, 0, 0),
18650 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18651 "Primary TDM7 Hostless Playback",
18652 0, 0, 0, 0),
18653 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18654 "Primary TDM7 Hostless Capture",
18655 0, 0, 0, 0),
18656 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18657 "Secondary TDM0 Hostless Playback",
18658 0, 0, 0, 0),
18659 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18660 "Secondary TDM0 Hostless Capture",
18661 0, 0, 0, 0),
18662 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18663 "Secondary TDM1 Hostless Playback",
18664 0, 0, 0, 0),
18665 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18666 "Secondary TDM1 Hostless Capture",
18667 0, 0, 0, 0),
18668 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18669 "Secondary TDM2 Hostless Playback",
18670 0, 0, 0, 0),
18671 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18672 "Secondary TDM2 Hostless Capture",
18673 0, 0, 0, 0),
18674 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18675 "Secondary TDM3 Hostless Playback",
18676 0, 0, 0, 0),
18677 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18678 "Secondary TDM3 Hostless Capture",
18679 0, 0, 0, 0),
18680 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18681 "Secondary TDM4 Hostless Playback",
18682 0, 0, 0, 0),
18683 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18684 "Secondary TDM4 Hostless Capture",
18685 0, 0, 0, 0),
18686 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18687 "Secondary TDM5 Hostless Playback",
18688 0, 0, 0, 0),
18689 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18690 "Secondary TDM5 Hostless Capture",
18691 0, 0, 0, 0),
18692 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18693 "Secondary TDM6 Hostless Playback",
18694 0, 0, 0, 0),
18695 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18696 "Secondary TDM6 Hostless Capture",
18697 0, 0, 0, 0),
18698 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18699 "Secondary TDM7 Hostless Playback",
18700 0, 0, 0, 0),
18701 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18702 "Secondary TDM7 Hostless Capture",
18703 0, 0, 0, 0),
18704 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18705 "Tertiary TDM0 Hostless Playback",
18706 0, 0, 0, 0),
18707 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18708 "Tertiary TDM0 Hostless Capture",
18709 0, 0, 0, 0),
18710 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18711 "Tertiary TDM1 Hostless Playback",
18712 0, 0, 0, 0),
18713 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18714 "Tertiary TDM1 Hostless Capture",
18715 0, 0, 0, 0),
18716 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18717 "Tertiary TDM2 Hostless Playback",
18718 0, 0, 0, 0),
18719 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18720 "Tertiary TDM2 Hostless Capture",
18721 0, 0, 0, 0),
18722 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18723 "Tertiary TDM3 Hostless Playback",
18724 0, 0, 0, 0),
18725 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18726 "Tertiary TDM3 Hostless Capture",
18727 0, 0, 0, 0),
18728 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18729 "Tertiary TDM4 Hostless Playback",
18730 0, 0, 0, 0),
18731 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18732 "Tertiary TDM4 Hostless Capture",
18733 0, 0, 0, 0),
18734 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
18735 "Tertiary TDM5 Hostless Playback",
18736 0, 0, 0, 0),
18737 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
18738 "Tertiary TDM5 Hostless Capture",
18739 0, 0, 0, 0),
18740 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
18741 "Tertiary TDM6 Hostless Playback",
18742 0, 0, 0, 0),
18743 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
18744 "Tertiary TDM6 Hostless Capture",
18745 0, 0, 0, 0),
18746 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
18747 "Tertiary TDM7 Hostless Playback",
18748 0, 0, 0, 0),
18749 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
18750 "Tertiary TDM7 Hostless Capture",
18751 0, 0, 0, 0),
18752 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
18753 "Quaternary TDM0 Hostless Playback",
18754 0, 0, 0, 0),
18755 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
18756 "Quaternary TDM0 Hostless Capture",
18757 0, 0, 0, 0),
18758 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
18759 "Quaternary TDM1 Hostless Playback",
18760 0, 0, 0, 0),
18761 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
18762 "Quaternary TDM1 Hostless Capture",
18763 0, 0, 0, 0),
18764 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
18765 "Quaternary TDM2 Hostless Playback",
18766 0, 0, 0, 0),
18767 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
18768 "Quaternary TDM2 Hostless Capture",
18769 0, 0, 0, 0),
18770 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
18771 "Quaternary TDM3 Hostless Playback",
18772 0, 0, 0, 0),
18773 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
18774 "Quaternary TDM3 Hostless Capture",
18775 0, 0, 0, 0),
18776 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
18777 "Quaternary TDM4 Hostless Playback",
18778 0, 0, 0, 0),
18779 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
18780 "Quaternary TDM4 Hostless Capture",
18781 0, 0, 0, 0),
18782 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
18783 "Quaternary TDM5 Hostless Playback",
18784 0, 0, 0, 0),
18785 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
18786 "Quaternary TDM5 Hostless Capture",
18787 0, 0, 0, 0),
18788 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
18789 "Quaternary TDM6 Hostless Playback",
18790 0, 0, 0, 0),
18791 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
18792 "Quaternary TDM6 Hostless Capture",
18793 0, 0, 0, 0),
18794 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
18795 "Quaternary TDM7 Hostless Playback",
18796 0, 0, 0, 0),
18797 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
18798 "Quaternary TDM7 Hostless Capture",
18799 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018800 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
18801 "Quinary TDM0 Hostless Playback",
18802 0, 0, 0, 0),
18803 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
18804 "Quinary TDM0 Hostless Capture",
18805 0, 0, 0, 0),
18806 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
18807 "Quinary TDM1 Hostless Playback",
18808 0, 0, 0, 0),
18809 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
18810 "Quinary TDM1 Hostless Capture",
18811 0, 0, 0, 0),
18812 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
18813 "Quinary TDM2 Hostless Playback",
18814 0, 0, 0, 0),
18815 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
18816 "Quinary TDM2 Hostless Capture",
18817 0, 0, 0, 0),
18818 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
18819 "Quinary TDM3 Hostless Playback",
18820 0, 0, 0, 0),
18821 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
18822 "Quinary TDM3 Hostless Capture",
18823 0, 0, 0, 0),
18824 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
18825 "Quinary TDM4 Hostless Playback",
18826 0, 0, 0, 0),
18827 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
18828 "Quinary TDM4 Hostless Capture",
18829 0, 0, 0, 0),
18830 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
18831 "Quinary TDM5 Hostless Playback",
18832 0, 0, 0, 0),
18833 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
18834 "Quinary TDM5 Hostless Capture",
18835 0, 0, 0, 0),
18836 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
18837 "Quinary TDM6 Hostless Playback",
18838 0, 0, 0, 0),
18839 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
18840 "Quinary TDM6 Hostless Capture",
18841 0, 0, 0, 0),
18842 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
18843 "Quinary TDM7 Hostless Playback",
18844 0, 0, 0, 0),
18845 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
18846 "Quinary TDM7 Hostless Capture",
18847 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018848
18849 /* LSM */
18850 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
18851 0, 0, 0, 0),
18852 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
18853 0, 0, 0, 0),
18854 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
18855 0, 0, 0, 0),
18856 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
18857 0, 0, 0, 0),
18858 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
18859 0, 0, 0, 0),
18860 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
18861 0, 0, 0, 0),
18862 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
18863 0, 0, 0, 0),
18864 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
18865 0, 0, 0, 0),
18866 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
18867 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
18868 /* Backend AIF */
18869 /* Stream name equals to backend dai link stream name */
18870 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
18871 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
18872 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020018873 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
18874 0, 0, 0, 0),
18875 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
18876 0, 0, 0, 0),
18877 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
18878 0, 0, 0, 0),
18879 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
18880 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018881 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
18882 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
18883 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
18884 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
18885 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
18886 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018887 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
18888 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018889 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
18890 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
18891 0, 0, 0, 0),
18892 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
18893 0, 0, 0, 0),
18894 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
18895 0, 0, 0, 0),
18896 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
18897 "Secondary MI2S Playback SD1",
18898 0, 0, 0, 0),
18899 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
18900 0, 0, 0, 0),
18901 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
18902 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018903 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
18904 0, 0, 0, 0),
18905 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
18906 0, 0, 0, 0),
18907 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
18908 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018909 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
18910 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018911 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
18912 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018913 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
18914 0, 0, 0, 0),
18915 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
18916 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
18917 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
18918 0, 0, 0, 0),
18919 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
18920 0, 0, 0, 0),
18921 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
18922 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018923 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
18924 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018925 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
18926 0, 0, 0, 0),
18927 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
18928 0, 0, 0, 0),
18929 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
18930 0, 0, 0, 0),
18931 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
18932 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
18933 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
18934 0, 0, 0, 0),
18935 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
18936 0, 0, 0, 0),
18937 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
18938 0, 0, 0, 0),
18939 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
18940 0, 0, 0, 0),
18941 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
18942 0, 0, 0, 0),
18943 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
18944 0, 0, 0, 0),
18945 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
18946 0, 0, 0, 0),
18947 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18948 0, 0, 0, 0),
18949 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18950 0, 0, 0, 0),
18951 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18952 0, 0, 0, 0),
18953 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18954 0, 0, 0, 0),
18955 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18956 0, 0, 0, 0),
18957 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18958 0, 0, 0, 0),
18959 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18960 0, 0, 0, 0),
18961 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18962 0, 0, 0, 0),
18963 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18964 0, 0, 0, 0),
18965 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18966 0, 0, 0, 0),
18967 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18968 0, 0, 0, 0),
18969 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18970 0, 0, 0, 0),
18971 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18972 0, 0, 0, 0),
18973 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18974 0, 0, 0, 0),
18975 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18976 0, 0, 0, 0),
18977 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18978 0, 0, 0, 0),
18979 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18980 0, 0, 0, 0),
18981 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18982 0, 0, 0, 0),
18983 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18984 0, 0, 0, 0),
18985 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18986 0, 0, 0, 0),
18987 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18988 0, 0, 0, 0),
18989 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18990 0, 0, 0, 0),
18991 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18992 0, 0, 0, 0),
18993 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18994 0, 0, 0, 0),
18995 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18996 0, 0, 0, 0),
18997 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18998 0, 0, 0, 0),
18999 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
19000 0, 0, 0, 0),
19001 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
19002 0, 0, 0, 0),
19003 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
19004 0, 0, 0, 0),
19005 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
19006 0, 0, 0, 0),
19007 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
19008 0, 0, 0, 0),
19009 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
19010 0, 0, 0, 0),
19011 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
19012 0, 0, 0, 0),
19013 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
19014 0, 0, 0, 0),
19015 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
19016 0, 0, 0, 0),
19017 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
19018 0, 0, 0, 0),
19019 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
19020 0, 0, 0, 0),
19021 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
19022 0, 0, 0, 0),
19023 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
19024 0, 0, 0, 0),
19025 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
19026 0, 0, 0, 0),
19027 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
19028 0, 0, 0, 0),
19029 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
19030 0, 0, 0, 0),
19031 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
19032 0, 0, 0, 0),
19033 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
19034 0, 0, 0, 0),
19035 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
19036 0, 0, 0, 0),
19037 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
19038 0, 0, 0, 0),
19039 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
19040 0, 0, 0, 0),
19041 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
19042 0, 0, 0, 0),
19043 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
19044 0, 0, 0, 0),
19045 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
19046 0, 0, 0, 0),
19047 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
19048 0, 0, 0, 0),
19049 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
19050 0, 0, 0, 0),
19051 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
19052 0, 0, 0, 0),
19053 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
19054 0, 0, 0, 0),
19055 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
19056 0, 0, 0, 0),
19057 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
19058 0, 0, 0, 0),
19059 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
19060 0, 0, 0, 0),
19061 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
19062 0, 0, 0, 0),
19063 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
19064 0, 0, 0, 0),
19065 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
19066 0, 0, 0, 0),
19067 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
19068 0, 0, 0, 0),
19069 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
19070 0, 0, 0, 0),
19071 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
19072 0, 0, 0, 0),
19073 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
19074 0, 0, 0, 0),
19075 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
19076 0, 0, 0, 0),
19077 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
19078 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019079 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
19080 0, 0, 0, 0),
19081 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
19082 0, 0, 0, 0),
19083 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
19084 0, 0, 0, 0),
19085 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
19086 0, 0, 0, 0),
19087 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
19088 0, 0, 0, 0),
19089 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
19090 0, 0, 0, 0),
19091 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
19092 0, 0, 0, 0),
19093 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
19094 0, 0, 0, 0),
19095 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
19096 0, 0, 0, 0),
19097 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
19098 0, 0, 0, 0),
19099 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
19100 0, 0, 0, 0),
19101 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
19102 0, 0, 0, 0),
19103 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
19104 0, 0, 0, 0),
19105 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
19106 0, 0, 0, 0),
19107 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
19108 0, 0, 0, 0),
19109 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
19110 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019111 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
19112 0, 0, 0, 0),
19113 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
19114 0, 0, 0, 0),
19115 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
19116 0, 0, 0, 0),
19117 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
19118 0, 0, 0, 0),
19119 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
19120 0, 0, 0, 0),
19121 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
19122 0, 0, 0, 0),
19123 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
19124 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019125 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
19126 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019127 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
19128 0, 0, 0, 0),
19129 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
19130 0, 0, 0, 0),
19131 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
19132 0, 0, 0, 0),
19133 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
19134 0, 0, 0, 0),
19135 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
19136 0, 0, 0, 0),
19137 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
19138 0, 0, 0, 0),
19139 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
19140 0, 0, 0, 0),
19141 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
19142 0, 0, 0, 0),
19143 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
19144 0, 0, 0, 0),
19145 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
19146 0, 0, 0, 0),
19147 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
19148 0, 0, 0, 0),
19149 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
19150 0, 0, 0, 0),
19151 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
19152 0, 0, 0, 0),
19153 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
19154 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019155 /* incall */
19156 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
19157 0, 0, 0, 0),
19158 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
19159 0, 0, 0, 0),
19160 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
19161 0, 0, 0, 0),
19162 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
19163 0, 0, 0, 0),
19164 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
19165 0, 0, 0, 0),
19166 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
19167 0, 0, 0, 0),
19168 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
19169 0, 0, 0, 0),
19170 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
19171 0, 0, 0, 0),
19172 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
19173
19174 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
19175 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
19176 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
19177 0, 0, 0, 0),
19178 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
19179 0, 0, 0, 0),
19180 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
19181 0, 0, 0, 0),
19182 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
19183 0, 0, 0, 0),
19184 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
19185 0, 0, 0, 0),
19186 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
19187 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019188 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
19189 0, 0, 0, 0),
19190 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
19191 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019192 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
19193 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
19194 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
19195 0, 0, 0, 0),
19196 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
19197 0, 0, 0, 0),
19198 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
19199 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
19200 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
19201 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
19202 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
19203 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
19204 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
19205 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
19206 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
19207 /* In- call recording */
19208 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
19209 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053019210 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
19211 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019212 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
19213 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
19214
19215 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
19216 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019217 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
19218 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019219 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
19220 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
19221
19222 /* Switch Definitions */
19223 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
19224 &slim_fm_switch_mixer_controls),
19225 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
19226 &slim1_fm_switch_mixer_controls),
19227 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
19228 &slim3_fm_switch_mixer_controls),
19229 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
19230 &slim4_fm_switch_mixer_controls),
19231 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
19232 &slim6_fm_switch_mixer_controls),
19233 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19234 &pcm_rx_switch_mixer_controls),
19235 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19236 &int0_mi2s_rx_switch_mixer_controls),
19237 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19238 &int4_mi2s_rx_switch_mixer_controls),
19239 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19240 &pri_mi2s_rx_switch_mixer_controls),
19241 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19242 &sec_mi2s_rx_switch_mixer_controls),
19243 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19244 &tert_mi2s_rx_switch_mixer_controls),
19245 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19246 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053019247 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19248 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019249 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19250 &hfp_pri_aux_switch_mixer_controls),
19251 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19252 &hfp_aux_switch_mixer_controls),
19253 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
19254 &hfp_int_switch_mixer_controls),
19255 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19256 &hfp_slim7_switch_mixer_controls),
19257 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
19258 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080019259 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19260 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019261 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019262 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019263 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019264 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019265
19266 /* Mixer definitions */
19267 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19268 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
19269 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19270 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
19271 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19272 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
19273 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19274 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
19275 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19276 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
19277 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19278 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019279 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19280 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019281 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
19282 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
19283 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
19284 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019285 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
19286 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020019287 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19288 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
19289 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19290 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019291 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19292 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
19293 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19294 quaternary_mi2s_rx_mixer_controls,
19295 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
19296 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19297 tertiary_mi2s_rx_mixer_controls,
19298 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
19299 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19300 secondary_mi2s_rx_mixer_controls,
19301 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
19302 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19303 secondary_mi2s_rx2_mixer_controls,
19304 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
19305 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19306 primary_mi2s_rx_mixer_controls,
19307 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
19308 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19309 int0_mi2s_rx_mixer_controls,
19310 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
19311 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19312 int4_mi2s_rx_mixer_controls,
19313 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
19314 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19315 quinary_mi2s_rx_mixer_controls,
19316 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
19317 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19318 pri_tdm_rx_0_mixer_controls,
19319 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
19320 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19321 pri_tdm_rx_1_mixer_controls,
19322 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
19323 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19324 pri_tdm_rx_2_mixer_controls,
19325 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
19326 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19327 pri_tdm_rx_3_mixer_controls,
19328 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
19329 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19330 pri_tdm_tx_0_mixer_controls,
19331 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
19332 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19333 sec_tdm_rx_0_mixer_controls,
19334 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
19335 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19336 sec_tdm_rx_1_mixer_controls,
19337 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
19338 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19339 sec_tdm_rx_2_mixer_controls,
19340 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
19341 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19342 sec_tdm_rx_3_mixer_controls,
19343 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
19344 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19345 sec_tdm_tx_0_mixer_controls,
19346 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
19347 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19348 tert_tdm_rx_0_mixer_controls,
19349 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
19350 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19351 tert_tdm_tx_0_mixer_controls,
19352 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
19353 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19354 tert_tdm_rx_1_mixer_controls,
19355 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19356 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19357 tert_tdm_rx_2_mixer_controls,
19358 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19359 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19360 tert_tdm_rx_3_mixer_controls,
19361 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19362 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19363 tert_tdm_rx_4_mixer_controls,
19364 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19365 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19366 quat_tdm_rx_0_mixer_controls,
19367 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19368 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19369 quat_tdm_tx_0_mixer_controls,
19370 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19371 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19372 quat_tdm_rx_1_mixer_controls,
19373 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19374 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19375 quat_tdm_rx_2_mixer_controls,
19376 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19377 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19378 quat_tdm_rx_3_mixer_controls,
19379 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019380 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19381 quin_tdm_rx_0_mixer_controls,
19382 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19383 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19384 quin_tdm_tx_0_mixer_controls,
19385 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19386 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19387 quin_tdm_rx_1_mixer_controls,
19388 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19389 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19390 quin_tdm_rx_2_mixer_controls,
19391 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19392 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19393 quin_tdm_rx_3_mixer_controls,
19394 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019395 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19396 wsa_cdc_dma_rx_0_mixer_controls,
19397 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19398 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19399 wsa_cdc_dma_rx_1_mixer_controls,
19400 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019401 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19402 rx_cdc_dma_rx_0_mixer_controls,
19403 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19404 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19405 rx_cdc_dma_rx_1_mixer_controls,
19406 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19407 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19408 rx_cdc_dma_rx_2_mixer_controls,
19409 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19410 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19411 rx_cdc_dma_rx_3_mixer_controls,
19412 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19413 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19414 rx_cdc_dma_rx_4_mixer_controls,
19415 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19416 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19417 rx_cdc_dma_rx_5_mixer_controls,
19418 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19419 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19420 rx_cdc_dma_rx_6_mixer_controls,
19421 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19422 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19423 rx_cdc_dma_rx_7_mixer_controls,
19424 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019425 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19426 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19427 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19428 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19429 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19430 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19431 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19432 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19433 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19434 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19435 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19436 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19437 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19438 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19439 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19440 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019441 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19442 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019443 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19444 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019445 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19446 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19447 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19448 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19449 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19450 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19451 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19452 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019453 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19454 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019455 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19456 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019457 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19458 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19459 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19460 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019461 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19462 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19463 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19464 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19465 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19466 tert_auxpcm_rx_mixer_controls,
19467 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19468 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19469 quat_auxpcm_rx_mixer_controls,
19470 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019471 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19472 quin_auxpcm_rx_mixer_controls,
19473 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019474 /* incall */
19475 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19476 incall_music_delivery_mixer_controls,
19477 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19478 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19479 incall_music2_delivery_mixer_controls,
19480 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19481 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19482 slimbus_4_rx_mixer_controls,
19483 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19484 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19485 slimbus_6_rx_mixer_controls,
19486 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19487 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19488 usb_audio_rx_mixer_controls,
19489 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19490 /* Voice Mixer */
19491 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19492 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19493 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19494 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19495 SND_SOC_NOPM, 0, 0,
19496 sec_i2s_rx_voice_mixer_controls,
19497 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19498 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19499 SND_SOC_NOPM, 0, 0,
19500 sec_mi2s_rx_voice_mixer_controls,
19501 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19502 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19503 SND_SOC_NOPM, 0, 0,
19504 slimbus_rx_voice_mixer_controls,
19505 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19506 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19507 SND_SOC_NOPM, 0, 0,
19508 bt_sco_rx_voice_mixer_controls,
19509 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19510 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19511 SND_SOC_NOPM, 0, 0,
19512 afe_pcm_rx_voice_mixer_controls,
19513 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19514 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19515 SND_SOC_NOPM, 0, 0,
19516 aux_pcm_rx_voice_mixer_controls,
19517 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19518 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19519 SND_SOC_NOPM, 0, 0,
19520 sec_aux_pcm_rx_voice_mixer_controls,
19521 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19522 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19523 SND_SOC_NOPM, 0, 0,
19524 tert_aux_pcm_rx_voice_mixer_controls,
19525 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19526 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19527 SND_SOC_NOPM, 0, 0,
19528 quat_aux_pcm_rx_voice_mixer_controls,
19529 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019530 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19531 SND_SOC_NOPM, 0, 0,
19532 quin_aux_pcm_rx_voice_mixer_controls,
19533 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019534 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19535 SND_SOC_NOPM, 0, 0,
19536 hdmi_rx_voice_mixer_controls,
19537 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19538 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19539 SND_SOC_NOPM, 0, 0,
19540 mi2s_rx_voice_mixer_controls,
19541 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19542 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19543 SND_SOC_NOPM, 0, 0,
19544 pri_mi2s_rx_voice_mixer_controls,
19545 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19546 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19547 SND_SOC_NOPM, 0, 0,
19548 int0_mi2s_rx_voice_mixer_controls,
19549 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19550 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19551 SND_SOC_NOPM, 0, 0,
19552 int4_mi2s_rx_voice_mixer_controls,
19553 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19554 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19555 SND_SOC_NOPM, 0, 0,
19556 tert_mi2s_rx_voice_mixer_controls,
19557 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19558 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19559 SND_SOC_NOPM, 0, 0,
19560 quat_mi2s_rx_voice_mixer_controls,
19561 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19562 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19563 SND_SOC_NOPM, 0, 0,
19564 quin_mi2s_rx_voice_mixer_controls,
19565 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19566 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19567 SND_SOC_NOPM, 0, 0,
19568 quat_tdm_rx_2_voice_mixer_controls,
19569 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019570 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19571 SND_SOC_NOPM, 0, 0,
19572 wsa_cdc_dma_rx_0_voice_mixer_controls,
19573 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19574 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19575 SND_SOC_NOPM, 0, 0,
19576 rx_cdc_dma_rx_0_voice_mixer_controls,
19577 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019578 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19579 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19580 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019581 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19582 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19583 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19584 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19585 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19586 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19587 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19588 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19589 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19590 int_bt_a2dp_rx_mixer_controls,
19591 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19592 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19593 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19594 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19595 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19596 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19597 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19598 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19599 tx_voice2_stub_mixer_controls,
19600 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19601 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19602 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19603 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19604 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19605 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19606 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19607 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19608 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19609 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19610 SND_SOC_NOPM, 0, 0,
19611 slimbus_6_rx_voice_mixer_controls,
19612 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19613 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19614 slimbus_7_rx_voice_mixer_controls,
19615 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19616 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19617 slimbus_8_rx_voice_mixer_controls,
19618 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19619 /* port mixer */
19620 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19621 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19622 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19623 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19624 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19625 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19626 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19627 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19628 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19629 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19630 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19631 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19632 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19633 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19634 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019635 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19636 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19637 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019638 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19639 sbus_1_rx_port_mixer_controls,
19640 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19641 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19642 bt_sco_rx_port_mixer_controls,
19643 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19644 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19645 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19646 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19647 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19648 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19649 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19650 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19651 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19652 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019653 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019654 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19655 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019656 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19657 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19658 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19659 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19660 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19661 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19662 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19663 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19664 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19665 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19666 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19667 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19668 primary_mi2s_rx_port_mixer_controls,
19669 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19670 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19671 sec_mi2s_rx_port_mixer_controls,
19672 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19673 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19674 tert_mi2s_rx_port_mixer_controls,
19675 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19676 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19677 quat_mi2s_rx_port_mixer_controls,
19678 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019679 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19680 quin_mi2s_rx_port_mixer_controls,
19681 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019682 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19683 pri_tdm_rx_0_port_mixer_controls,
19684 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19685 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19686 pri_tdm_rx_1_port_mixer_controls,
19687 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19688 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19689 pri_tdm_rx_2_port_mixer_controls,
19690 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19691 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19692 pri_tdm_rx_3_port_mixer_controls,
19693 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19694 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19695 sec_tdm_rx_0_port_mixer_controls,
19696 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19697 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19698 sec_tdm_rx_1_port_mixer_controls,
19699 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19700 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19701 sec_tdm_rx_2_port_mixer_controls,
19702 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19703 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19704 sec_tdm_rx_3_port_mixer_controls,
19705 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070019706 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
19707 sec_tdm_rx_7_port_mixer_controls,
19708 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019709 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19710 tert_tdm_rx_0_port_mixer_controls,
19711 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19712 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19713 tert_tdm_rx_1_port_mixer_controls,
19714 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19715 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19716 tert_tdm_rx_2_port_mixer_controls,
19717 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19718 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19719 tert_tdm_rx_3_port_mixer_controls,
19720 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19721 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19722 quat_tdm_rx_0_port_mixer_controls,
19723 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19724 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19725 quat_tdm_rx_1_port_mixer_controls,
19726 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19727 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19728 quat_tdm_rx_2_port_mixer_controls,
19729 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19730 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19731 quat_tdm_rx_3_port_mixer_controls,
19732 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019733 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19734 quin_tdm_rx_0_port_mixer_controls,
19735 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
19736 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19737 quin_tdm_rx_1_port_mixer_controls,
19738 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
19739 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19740 quin_tdm_rx_2_port_mixer_controls,
19741 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
19742 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19743 quin_tdm_rx_3_port_mixer_controls,
19744 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019745 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19746 int0_mi2s_rx_port_mixer_controls,
19747 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
19748 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19749 int4_mi2s_rx_port_mixer_controls,
19750 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019751 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19752 wsa_cdc_dma_rx_0_port_mixer_controls,
19753 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
19754 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19755 rx_cdc_dma_rx_0_port_mixer_controls,
19756 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019757 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
19758 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
19759 ARRAY_SIZE(tx_qchat_mixer_controls)),
19760 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
19761 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
19762 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
19763 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
19764 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
19765 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080019766 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
19767 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
19768 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019769 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
19770 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
19771 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019772 /* lsm mixer definitions */
19773 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
19774 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
19775 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
19776 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
19777 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
19778 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
19779 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
19780 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
19781 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
19782 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
19783 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
19784 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
19785 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
19786 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
19787 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
19788 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
19789 /* Virtual Pins to force backends ON atm */
19790 SND_SOC_DAPM_OUTPUT("BE_OUT"),
19791 SND_SOC_DAPM_INPUT("BE_IN"),
19792
19793 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19794 &slim0_rx_vi_fb_lch_mux),
19795 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19796 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019797 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19798 &wsa_rx_0_vi_fb_lch_mux),
19799 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19800 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019801 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
19802 &mi2s_rx_vi_fb_mux),
19803 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
19804 &int4_mi2s_rx_vi_fb_mono_ch_mux),
19805 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
19806 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
19807
19808 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
19809 &voc_ext_ec_mux),
19810 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
19811 &ext_ec_ref_mux_ul1),
19812 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
19813 &ext_ec_ref_mux_ul2),
19814 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
19815 &ext_ec_ref_mux_ul3),
19816 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
19817 &ext_ec_ref_mux_ul4),
19818 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
19819 &ext_ec_ref_mux_ul5),
19820 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
19821 &ext_ec_ref_mux_ul6),
19822 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
19823 &ext_ec_ref_mux_ul8),
19824 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
19825 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019826 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
19827 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019828 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
19829 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019830 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
19831 &ext_ec_ref_mux_ul17),
19832 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
19833 &ext_ec_ref_mux_ul18),
19834 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
19835 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080019836 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
19837 &ext_ec_ref_mux_ul28),
19838 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
19839 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019840};
19841
19842static const struct snd_soc_dapm_route intercon[] = {
19843 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19844 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19845 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19846 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19847 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19848 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19849 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19850 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19851 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19852 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19853 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19854 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19855 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19856 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19857 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19858 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019859 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019860 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
19861
19862 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19863 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19864 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19865 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19866 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19867 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19868 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19869 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19870 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19871 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19872 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19873 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19874 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19875 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19876 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19877 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019878 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019879 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
19880
19881 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19882 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19883 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19884 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19885 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19886 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19887 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19888 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19889 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19890 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19891 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19892 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19893 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19894 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19895 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19896 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019897 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019898 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
19899
19900 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19901 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19902 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19903 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19904 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19905 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19906 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19907 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19908 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19909 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19910 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19911 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19912 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19913 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19914 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19915 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019916 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019917 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
19918
19919 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19920 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19921 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19922 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19923 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19924 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19925 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19926 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19927 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19928 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19929 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19930 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19931 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19932 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19933 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19934 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019935 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019936 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
19937
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019938 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19939 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19940 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19941 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19942 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19943 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19944 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19945 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19946 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19947 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19948 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19949 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19950 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19951 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19952 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19953 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019954 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019955 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
19956
19957 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19958 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19959 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19960 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19961 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19962 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19963 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19964 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19965 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19966 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19967 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19968 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19969 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19970 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19971 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19972 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019973 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019974 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19975
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019976 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19977 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19978 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19979 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19980 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19981 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19982 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19983 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19984 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19985 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19986 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19987 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19988 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19989 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19990 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19991 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019992 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019993 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19994
19995 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19996 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19997 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19998 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19999 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20000 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20001 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20002 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20003 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20004 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20005 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20006 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20007 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20008 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20009 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20010 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020011 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020012 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
20013
20014 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20015 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20016 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20017 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20018 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20019 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20020 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20021 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20022 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20023 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20024 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20025 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20026 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20027 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20028 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20029 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020030 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020031 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
20032
20033 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20034 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20035 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20036 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20037 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20038 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20039 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20040 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20041 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20042 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20043 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20044 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20045 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20046 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20047 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20048 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020049 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020050 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
20051
20052 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20053 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20054 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20055 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20056 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20057 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20058 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20059 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20060 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20061 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20062 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20063 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20064 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20065 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20066 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20067 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020068 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020069 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
20070
20071 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
20072 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
20073 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
20074 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
20075 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
20076 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
20077 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
20078 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
20079 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
20080 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
20081 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
20082 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
20083 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
20084 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
20085 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
20086 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020087 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020088 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
20089
20090 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
20091 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
20092 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
20093 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
20094 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
20095 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
20096 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
20097 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
20098 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
20099 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
20100 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
20101 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
20102 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
20103 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
20104 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
20105 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020106 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020107 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
20108
20109 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
20110 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
20111 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
20112 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
20113 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
20114 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
20115 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
20116 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
20117 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
20118 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
20119 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
20120 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
20121 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
20122 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
20123 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
20124 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020125 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020126 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
20127
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020128 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
20129 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
20130 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
20131 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
20132 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
20133 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
20134 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
20135 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
20136 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
20137 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
20138 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
20139 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
20140 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
20141 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
20142 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
20143 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020144 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020145 {"HDMI", NULL, "HDMI Mixer"},
20146
20147 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
20148 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
20149 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
20150 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
20151 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
20152 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
20153 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
20154 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
20155 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
20156 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
20157 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
20158 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
20159 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
20160 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
20161 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
20162 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020163 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020164 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
20165
Karthikeyan Mani57550082018-05-03 18:43:58 -070020166 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
20167 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
20168 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
20169 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
20170 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
20171 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
20172 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
20173 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
20174 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
20175 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
20176 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
20177 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
20178 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
20179 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
20180 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
20181 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020182 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070020183 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
20184
Ralf Herzc8701f72018-06-20 11:37:35 +020020185 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20186 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20187 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20188 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20189 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20190 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20191 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20192 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20193 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20194 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20195 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20196 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20197 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20198 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20199 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20200 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020201 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020202 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
20203
20204 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20205 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20206 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20207 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20208 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20209 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20210 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20211 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20212 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20213 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20214 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20215 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20216 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20217 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20218 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20219 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020220 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020221 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020222
20223 /* incall */
20224 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
20225 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
20226 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
20227 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
20228 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
20229 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20230 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20231 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20232 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20233 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
20234 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20235 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20236 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20237 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20238 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
20239
20240 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20241 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20242 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20243 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20244 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20245 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20246 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20247 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20248 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20249 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20250 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20251 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20252 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20253 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20254 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20255 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020256 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020257 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
20258
20259 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20260 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20261 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20262 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20263 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20264 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20265 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20266 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20267 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20268 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20269 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20270 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20271 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20272 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20273 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20274 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020275 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020276 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
20277
Surendar Karka3ef3d812018-09-28 18:52:35 +053020278 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20279 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20280 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20281 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20282 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20283 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20284 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20285 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20286 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20287 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20288 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20289 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20290 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20291 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20292 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20293 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20294 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
20295 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
20296
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020297 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20298 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20299 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20300 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20301 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20302 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20303 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20304 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20305 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20306 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20307 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20308 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20309 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20310 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20311 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20312 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020313 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020314 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
20315
20316 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20317 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20318 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20319 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20320 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20321 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20322 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
20323 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20324 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20325 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020326 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020327 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20328 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020329 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020330 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020331 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020332 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020333 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020334 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020335 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020336 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020337 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020338 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020339 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020340 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020341 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020342 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020343 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020344 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20345 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20346 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20347 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20348 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020349 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20350 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020351 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020352 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020353 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20354 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20355 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020356 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20357 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20358 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20359 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20360 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20361 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020362 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020363 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20364 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20365 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020366 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20367 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020368 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020369 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020370 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020371 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020372 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020373 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020374 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020375 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20376 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020377 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020378 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020379 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020380 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020381 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20382 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20383 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020384 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020385 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20386 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20387 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020388
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020389 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20390 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20391 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20392 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20393 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20394 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20395 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20396 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20397 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20398 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20399 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20400 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20401 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20402 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20403 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20404 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020405 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020406 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20407
20408 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20409 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20410 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20411 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20412 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20413 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20414 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20415 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20416 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20417 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20418 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20419 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20420 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20421 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20422 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020423 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020424 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20425
20426 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20427 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20428 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20429 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20430 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20431 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20432 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20433 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20434 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20435 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20436 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20437 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20438 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20439 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020440 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020441 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20442
20443 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20444 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20445 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20446 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20447 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20448 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20449 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20450 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20451 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20452 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20453 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20454 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20455 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20456 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020457 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020458 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20459
20460 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20461 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20462
20463 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20464 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20465
20466 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20467 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20468 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20469 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20470 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20471 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20472 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20473 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20474 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20475 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20476 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20477 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20478 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20479 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20480 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020481 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020482 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20483
20484 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20485 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20486 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20487 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20488 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20489 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20490 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20491 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20492 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20493 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20494 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20495 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20496 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20497 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20498 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20499 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20500
20501 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20502 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20503 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20504 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20505 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20506 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20507 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20508 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20509 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20510 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20511 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20512 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20513 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20514 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20515 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20516 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20517
20518 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20519 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20520 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20521 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20522 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20523 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20524 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20525 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20526 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20527 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20528 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20529 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20530 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20531 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20532 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20533 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20534 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20535 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20536
20537 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20538 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20539 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20540 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20541 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20542 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20543 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20544 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20545 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20546 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20547 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20548 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20549 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20550 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20551 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20552 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020553 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020554 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20555
20556 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20557 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20558 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20559 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20560 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20561 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20562 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20563 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20564 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20565 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20566 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20567 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20568 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20569 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20570 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20571 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020572 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020573 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20574
20575 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20576 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20577 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20578 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20579 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20580 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20581 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20582 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20583 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20584 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20585 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20586 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20587 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20588 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20589 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20590 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020591 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020592 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20593
20594 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20595 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20596 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20597 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20598 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20599 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20600 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20601 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20602 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20603 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20604 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20605 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20606 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20607 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20608 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20609 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020610 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020611 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20612
20613 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20614 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20615 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20616 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20617 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20618 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20619 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20620 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20621 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20622 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20623 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20624 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20625 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20626 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20627 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20628 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20629 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20630
20631 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20632 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20633 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20634 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20635 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20636 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20637 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20638 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20639 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20640 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20641 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20642 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20643 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20644 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20645 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20646 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020647 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020648 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20649
20650 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20651 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20652 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20653 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20654 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20655 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20656 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20657 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20658 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20659 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20660 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20661 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20662 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20663 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20664 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20665 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020666 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020667 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20668
20669 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20670 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20671 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20672 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20673 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20674 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20675 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20676 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20677 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20678 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20679 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20680 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20681 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20682 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20683 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20684 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020685 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020686 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20687
20688 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20689 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20690 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20691 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20692 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20693 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20694 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20695 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20696 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20697 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20698 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20699 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20700 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20701 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20702 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20703 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020704 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020705 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20706
20707 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20708 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20709 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20710 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20711 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20712 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20713 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20714 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20715 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20716 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20717 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20718 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20719 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20720 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20721 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20722 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20723 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20724
20725 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20726 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20727 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20728 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20729 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20730 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20731 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20732 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20733 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20734 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20735 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20736 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20737 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20738 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20739 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20740 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020741 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020742 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
20743
20744 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20745 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20746 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20747 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20748 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20749 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20750 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20751 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20752 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20753 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20754 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20755 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20756 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20757 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20758 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20759 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20760 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
20761
20762 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20763 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20764 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20765 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20766 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20767 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20768 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20769 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20770 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20771 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20772 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20773 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20774 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20775 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20776 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20777 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020778 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020779 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
20780
20781 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20782 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20783 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20784 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20785 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20786 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20787 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20788 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20789 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20790 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20791 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20792 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20793 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20794 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20795 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20796 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020797 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020798 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
20799
20800 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20801 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20802 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20803 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20804 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20805 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20806 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20807 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20808 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20809 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20810 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20811 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20812 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20813 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20814 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20815 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020816 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020817 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
20818
20819 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20820 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20821 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20822 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20823 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20824 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20825 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20826 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20827 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20828 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20829 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20830 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20831 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20832 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20833 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20834 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020835 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020836 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
20837
20838 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20839 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20840 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20841 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20842 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20843 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20844 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20845 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20846 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20847 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20848 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20849 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20850 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20851 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20852 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20853 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20854 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020855 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020856 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
20857
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020858 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20859 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20860 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20861 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20862 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20863 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20864 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20865 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20866 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20867 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20868 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20869 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20870 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20871 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20872 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20873 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20874 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
20875
20876 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20877 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20878 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20879 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20880 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20881 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20882 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20883 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20884 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20885 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20886 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20887 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20888 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20889 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20890 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20891 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20892 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020893 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020894 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
20895
20896 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20897 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20898 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20899 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20900 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20901 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20902 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20903 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20904 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20905 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20906 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20907 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20908 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20909 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20910 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20911 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20912 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020913 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020914 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
20915
20916 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20917 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20918 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20919 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20920 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20921 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20922 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20923 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20924 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20925 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20926 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20927 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20928 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20929 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20930 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20931 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20932 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020933 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020934 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
20935
Rohit Kumara5077932017-09-10 22:05:05 +053020936 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20937 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20938 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20939 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20940 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20941 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20942 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20943 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20944 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20945 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20946 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20947 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20948 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20949 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20950 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20951 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20952 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020953 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020954 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
20955
20956 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20957 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20958 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20959 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20960 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20961 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20962 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20963 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20964 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20965 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20966 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20967 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20968 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20969 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20970 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20971 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20972 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
20973
20974 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20975 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20976 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20977 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20978 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20979 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20980 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20981 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20982 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20983 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20984 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20985 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20986 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20987 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20988 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20989 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20990 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020991 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020992 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
20993
20994 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20995 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20996 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20997 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20998 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20999 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21000 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21001 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21002 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21003 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21004 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21005 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21006 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21007 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21008 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21009 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21010 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021011 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021012 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
21013
21014 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21015 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21016 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21017 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21018 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21019 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21020 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21021 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21022 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21023 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21024 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21025 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21026 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21027 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21028 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21029 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21030 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021031 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021032 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
21033
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021034 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
21035 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
21036 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
21037 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
21038 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021039 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021040 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021041 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21042 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21043 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21044 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21045 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21046 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21047 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21048 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21049 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21050 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21051 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21052 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021053 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021054 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21055 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21056 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021057 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021058 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21059 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
21060 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021061 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021062 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21063 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021064 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21065 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
21066 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021067 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021068 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21069 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
21070 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021071 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021072 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021073 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
21074 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
21075 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021076 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21077 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21078 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21079 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21080 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21081 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21082 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21083 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021084 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021085 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21086 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21087 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021088 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021089 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21090 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21091 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021092 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021093 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021094 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21095 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21096 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021097 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021098 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021099 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21100 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21101 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21102 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21103 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021104 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21105 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21106 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21107 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021108 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021109
21110 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21111 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21112 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21113 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21114 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21115 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21116 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21117 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21118 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21119 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21120 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21121 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21122 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21123 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21124 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21125 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021126 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021127 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21128 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21129 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21130 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021131 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21132 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21133 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21134 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21135 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021136 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021137 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21138 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21139 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21140 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21141 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21142 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021143 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21144 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021145
21146 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21147 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21148 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21149 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21150 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21151 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21152 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21153 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21154 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21155 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21156 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21157 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21158 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21159 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21160 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21161 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021162 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021163 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21164 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21165 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21166 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021167 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21168 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21169 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21170 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21171 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021172 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021173 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21174 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21175 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21176 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21177 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21178 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021179 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21180 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021181
21182 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21183 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21184 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21185 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21186 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21187 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21188 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21189 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21190 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21191 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21192 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21193 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21194 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21195 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21196 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21197 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021198 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021199 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21200 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21201 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21202 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021203 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21204 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21205 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21206 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21207 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021208 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021209 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21210 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21211 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21212 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21213 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21214 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021215 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21216 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021217
21218 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21219 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21220 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21221 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21222 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21223 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21224 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21225 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21226 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21227 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21228 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21229 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21230 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21231 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21232 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21233 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021234 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021235 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21236 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21237 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21238 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021239 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21240 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21241 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21242 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21243 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021244 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021245 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21246 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21247 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21248 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21249 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21250 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021251 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21252 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021253
21254 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21255 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21256 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21257 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21258 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21259 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21260 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21261 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21262 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21263 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21264 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21265 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21266 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21267 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21268 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21269 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021270 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021271 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21272 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21273 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21274 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021275 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21276 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21277 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21278 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21279 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021280 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021281 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21282 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21283 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21284 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21285 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21286 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021287 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21288 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021289
21290 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21291 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21292 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21293 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21294 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21295 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21296 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21297 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21298 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21299 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21300 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21301 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21302 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21303 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21304 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21305 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021306 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021307 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21308 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21309 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21310 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021311 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21312 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21313 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21314 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21315 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021316 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021317 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21318 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21319 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21320 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21321 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21322 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021323 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21324 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021325
21326 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21327 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21328 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21329 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21330 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21331 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21332 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21333 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21334 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21335 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21336 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21337 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21338 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21339 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21340 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21341 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021342 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021343 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21344 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21345 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21346 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021347 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21348 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21349 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21350 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21351 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021352 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021353 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21354 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21355 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21356 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21357 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21358 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021359 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21360 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021361
Samyak Jain810e42a2019-01-07 17:53:34 +053021362 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021363 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21364 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21365 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21366 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21367 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21368 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21369 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21370 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021371 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21372 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21373 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21374 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021375 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21376 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21377 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21378 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21379 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021380 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021381 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21382 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21383 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21384 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21385 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21386 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021387 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21388 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021389 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021390
Laxminath Kasam38070be2017-08-17 18:21:59 +053021391 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21392 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21393 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21394 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21395 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21396 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21397 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21398 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021399 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21400 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21401 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21402 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21403 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21404 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021405 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021406
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021407 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21408 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21409 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21410 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021411 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021412 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21413 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21414 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21415 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21416 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21417 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21418 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21419 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21420 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21421 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21422 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21423 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21424 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21425 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21426 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21427 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021428 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21429 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21430 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21431 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021432 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21433 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21434 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21435 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21436 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021437 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021438 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21439 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21440 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21441 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21442 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21443 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021444 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21445 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021446 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021447
Derek Chen07c6d1c2018-07-05 10:39:25 -070021448 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21449 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21450 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21451 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21452 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21453 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21454 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21455 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21456 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21457 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21458 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21459 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21460 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21461 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21462 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21463 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21464 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21465 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21466 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21467 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21468 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21469 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021470 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21471 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21472 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21473 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21474 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021475 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021476 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21477 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21478 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21479 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21480 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21481 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21482 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21483 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021484 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021485
Surendar Karkac1cde372018-08-14 18:56:24 +053021486 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021487 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021488 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21489 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021490 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021491 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21492 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21493 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21494 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21495 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21496 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21497 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021498 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021499
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021500 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21501 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21502 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21503 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21504 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21505 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021506 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021507
Asish Bhattacharya34504582017-08-08 12:55:01 +053021508 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21509 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21510 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21511 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21512 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21513 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21514 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21515 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21516 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21517 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21518 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21519 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21520 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21521 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21522 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21523 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21524 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021525 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21526 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21527 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21528 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21529 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021530 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021531 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21532 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21533 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21534 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21535 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21536 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021537 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21538 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021539 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021540
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021541 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21542 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21543 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21544 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21545 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21546 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021547 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021548
21549 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21550 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21551 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21552 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21553 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21554 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021555 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021556
21557 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21558 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21559 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21560 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21561 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21562 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021563 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021564
21565 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21566 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21567 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21568 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21569 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21570 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021571 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021572
21573 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21574 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21575 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21576 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21577 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21578 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021579 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021580
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021581 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21582 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21583 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21584 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21585 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21586 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21587 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21588 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21589 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21590 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21591 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21592 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21593 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21594 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21595 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21596 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21597 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21598 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21599
21600 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21601 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21602 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21603 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21604 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21605 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21606 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21607 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21608 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21609 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21610 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21611 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21612 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21613 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21614 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21615 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21616 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21617 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21618
21619 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21620 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21621 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21622 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21623 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21624 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21625 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21626 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21627 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21628 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21629 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21630 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21631 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21632 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21633 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21634 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21635 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21636
21637 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21638 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21639 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21640 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21641 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21642 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21643 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21644 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21645 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21646 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21647 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21648 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21649 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21650 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21651 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21652 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21653 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21654
21655 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21656 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21657 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021658 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021659 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21660 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21661 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021662 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21663 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021664 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21665 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021666 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021667 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21668 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021669 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021670 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21671 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21672 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021673 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21674 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021675 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21676 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21677 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21678
21679 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21680 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21681 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021682 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021683 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21684 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21685 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021686 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21687 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021688 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21689 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021690 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021691 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21692 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21693 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21694 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21695 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21696 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21697 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21698 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21699 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021700 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021701 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021702 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21703 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21704 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21705 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021706 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021707 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021708 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21709 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021710
21711 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21712 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21713 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21714 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21715 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21716 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21717 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21718 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21719 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21720 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21721 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21722 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21723 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21724 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21725 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21726 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021727 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021728 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21729
21730 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21731 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21732 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21733 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21734 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21735 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21736 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21737 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21738 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21739 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21740 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21741 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21742 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21743 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21744 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21745 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021746 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021747 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
21748
21749 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21750 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21751 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21752 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21753 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21754 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21755 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21756 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21757 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21758 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21759 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21760 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21761 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21762 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21763 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21764 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21765 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
21766
21767 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21768 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21769 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21770 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21771 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21772 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21773 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21774 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21775 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21776 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21777 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21778 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21779 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21780 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21781 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21782 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21783 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
21784
Rohit Kumara5077932017-09-10 22:05:05 +053021785 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21786 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21787 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21788 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21789 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21790 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21791 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21792 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21793 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21794 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21795 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21796 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21797 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21798 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21799 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21800 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21801 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
21802
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021803 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21804 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21805 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21806 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21807 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21808 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
21809
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021810 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
21811 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21812 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21813 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
21814
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021815 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21816 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21817 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21818 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21819 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21820 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
21821
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021822 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
21823 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021824 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21825 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21826 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21827 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
21828
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021829 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
21830 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021831 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21832 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21833 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21834 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
21835
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021836 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21837 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021838 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21839 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21840 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21841 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
21842
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021843 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
21844 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021845 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21846 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21847 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21848 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
21849
Karthikeyan Mani57550082018-05-03 18:43:58 -070021850 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
21851 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21852 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
21853 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21854 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21855 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
21856
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021857 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21858 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21859 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21860 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21861 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021862 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
21863
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021864 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21865 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21866 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21867 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21868 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21869 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
21870
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021871 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21872 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021873 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21874 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21875 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21876 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
21877
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021878 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21879 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021880 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21881 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21882 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21883 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
21884
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021885 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21886 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021887 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21888 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21889 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21890 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
21891
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021892 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21893 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021894 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21895 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21896 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21897 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
21898
Rohit Kumara5077932017-09-10 22:05:05 +053021899 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21900 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021901 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21902 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21903 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21904 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
21905
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021906 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21907 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21908 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21909 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21910 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21911 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
21912 {"HDMI", NULL, "HDMI_DL_HL"},
21913
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021914 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021915 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21916 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21917 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080021918 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021919 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
21920
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021921 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021922 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21923 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21924 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21925 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21926 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
21927
21928 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21929 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21930 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21931 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21932 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21933 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
21934
21935 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21936 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21937 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21938 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21939 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21940 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
21941
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021942 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021943 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21944 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21945 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21946 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21947 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
21948
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021949 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021950 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21951 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21952 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21953 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
21954
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021955 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021956 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21957 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21958 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21959 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
21960
21961 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21962 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
21963
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021964 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21965 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21966 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
21967
21968 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21969 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21970 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
21971
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021972 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21973 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21974 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21975 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021976 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021977 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070021978 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021979 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021980 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
21981 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
21982
21983 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21984 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21985 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21986 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21987 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21988 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21989 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21990 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21991 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21992 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021993 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21994 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021995
21996 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21997 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21998 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21999 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22000
22001 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22002 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22003 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22004 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22005
22006 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22007 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22008 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22009 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22010
22011 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22012 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22013 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22014 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22015
22016 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22017 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22018 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22019 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22020
22021 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22022 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22023 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22024 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22025
22026 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22027 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22028 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22029 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22030
Laxminath Kasam38070be2017-08-17 18:21:59 +053022031 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22032 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22033 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22034 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22035 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22036 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22037 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22038 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22039 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22040 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022041 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22042 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070022043
22044 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22045 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22046 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22047 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22048
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022049 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22050 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22051 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22052 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22053
22054 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22055 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22056 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22057 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22058
22059 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22060 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22061 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22062 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22063
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022064 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22065 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22066 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22067 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22068
22069 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22070 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22071 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22072 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080022073
22074 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22075 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22076 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22077 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22078 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22079 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22080 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22081 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22082
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022083 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
22084 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
22085 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
22086 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
22087 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
22088 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
22089 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
22090 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022091 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022092 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022093 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
22094 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
22095 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022096 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
22097 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022098
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022099 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
22100 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
22101 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
22102 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
22103 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
22104 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
22105 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
22106 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
22107 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
22108 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
22109 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
22110 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
22111 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
22112 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
22113 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022114 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022115 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022116 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
22117 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
22118 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
22119 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
22120 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
22121 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022122 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
22123
22124 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
22125 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
22126 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
22127 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
22128 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
22129 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
22130 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
22131 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
22132 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
22133 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
22134 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
22135 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
22136 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
22137 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
22138 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022139 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022140 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
22141 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
22142 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
22143 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
22144 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
22145 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022146 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
22147
22148 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
22149 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
22150 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
22151 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
22152 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
22153 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
22154 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
22155 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
22156 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
22157 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
22158 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
22159 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
22160 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
22161 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022162 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022163 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
22164 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
22165
22166 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
22167 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
22168 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
22169 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
22170 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
22171 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
22172 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
22173 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
22174 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
22175 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
22176 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
22177 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
22178 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
22179 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
22180 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022181 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22182 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
22183 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022184 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22185 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
22186 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022187 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22188 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22189 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22190 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22191 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22192 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22193 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22194 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022195 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22196 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022197 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022198 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022199 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022200 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
22201
22202 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22203 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22204 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22205 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22206 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22207 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22208 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22209 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022210 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22211 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022212 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022213 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022214 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022215 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
22216
22217
22218 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22219 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22220 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22221 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22222 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22223 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22224 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22225 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022226 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22227 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022228 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022229 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022230 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022231 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
22232
22233
22234 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22235 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22236 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22237 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22238 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22239 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22240 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22241 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022242 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22243 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022244 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022245 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022246 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022247 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
22248
22249 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22250 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22251 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22252 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22253 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22254 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22255 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22256 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022257 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22258 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022259 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022260 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022261 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022262 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
22263
22264 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22265 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22266 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22267 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22268 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22269 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022270 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22271 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022272 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022273 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022274 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022275 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
22276
22277 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22278 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22279 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22280 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22281 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22282 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022283 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22284 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022285 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022286 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022287 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022288 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
22289
22290 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22291 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22292 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22293 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22294 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22295 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022296 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22297 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022298 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022299 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022300 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022301 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
22302
22303
22304 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
22305 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
22306 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
22307 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
22308 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
22309 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
22310 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
22311 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
22312 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
22313 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
22314 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022315 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022316 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
22317 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
22318 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
22319 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
22320 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
22321 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
22322
22323 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
22324 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
22325 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
22326 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
22327 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
22328 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
22329 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
22330 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
22331 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
22332 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
22333 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
22334 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080022335 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
22336 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022337 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022338 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022339 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022340 {"MI2S_RX", NULL, "MI2S_DL_HL"},
22341 {"MI2S_UL_HL", NULL, "MI2S_TX"},
22342 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
22343 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
22344
22345 /* connect to INT4_MI2S_DL_HL since same pcm_id */
22346 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22347 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
22348 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22349 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
22350 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
22351 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
22352 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
22353 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
22354 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
22355 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
22356
22357 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
22358 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022359 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
22360 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022361 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22362 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
22363 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22364 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
22365 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
22366 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
22367 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
22368 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
22369 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
22370 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
22371
22372 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
22373 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
22374 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
22375 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
22376 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
22377 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
22378 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
22379 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
22380 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
22381 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
22382 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
22383 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
22384 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
22385 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
22386 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
22387 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022388 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022389 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
22390 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
22391 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
22392 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022393 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022394 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
22395 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
22396 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
22397 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
22398 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
22399 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
22400 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
22401 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
22402 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
22403 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
22404 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
22405 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022406 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
22407 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
22408 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
22409 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
22410 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
22411 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
22412 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
22413 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022414
22415 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22416 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22417 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22418 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22419 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22420 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22421 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22422 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22423 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22424 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22425 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22426 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22427 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22428 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22429 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22430 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022431 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22432 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22433 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22434 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022435 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
22436
22437 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22438 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22439 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22440 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22441 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22442 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22443 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22444 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22445 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22446 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22447 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22448 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22449 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22450 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22451 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22452 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022453 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22454 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22455 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22456 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022457 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
22458
22459 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22460 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22461 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22462 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22463 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22464 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22465 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22466 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22467 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22468 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22469 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22470 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22471 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22472 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22473 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22474 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022475 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22476 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22477 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22478 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022479 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22480
22481 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22482 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22483 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22484 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22485 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22486 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22487 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22488 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22489 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22490 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22491 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22492 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22493 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22494 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22495 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22496 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022497 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22498 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22499 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22500 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022501 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22502
22503 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22504 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22505 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22506 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22507 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22508 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22509 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22510 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22511 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22512 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22513 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22514 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22515 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22516 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22517 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22518 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022519 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22520 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22521 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22522 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022523 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22524
22525 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22526 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22527 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22528 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22529 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22530 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22531 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22532 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22533 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22534 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22535 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22536 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22537 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22538 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22539 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22540 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022541 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22542 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22543 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22544 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022545 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22546
22547 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22548 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22549 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22550 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22551 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22552 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22553 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22554 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22555 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22556 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22557 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22558 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22559 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22560 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22561 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22562 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022563 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22564 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22565 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22566 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022567 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22568
22569 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22570 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22571 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22572 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22573 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22574 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22575 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22576 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22577 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22578 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22579 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22580 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22581 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22582 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22583 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22584 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022585 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22586 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22587 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22588 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022589 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22590
Derek Chenfdcc0982018-10-02 15:14:03 -070022591 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
22592 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
22593
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022594 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22595 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22596 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22597 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22598 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22599 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22600 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22601 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22602 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22603 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22604 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22605 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22606 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22607 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22608 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22609 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022610 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22611 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22612 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22613 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022614 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22615
22616 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22617 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22618 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22619 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22620 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22621 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22622 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22623 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22624 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22625 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22626 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22627 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22628 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22629 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22630 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22631 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022632 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22633 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22634 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22635 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022636 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22637
22638 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22639 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22640 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22641 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22642 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22643 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22644 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22645 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22646 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22647 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22648 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22649 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22650 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22651 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22652 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22653 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022654 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22655 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22656 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22657 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022658 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22659
22660 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22661 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22662 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22663 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22664 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22665 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22666 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22667 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22668 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22669 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22670 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22671 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22672 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22673 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22674 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22675 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022676 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22677 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22678 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22679 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022680 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22681
22682 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22683 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22684 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22685 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22686 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22687 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22688 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22689 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22690 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22691 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22692 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22693 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22694 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22695 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22696 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22697 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022698 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22699 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22700 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22701 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022702 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22703
22704 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22705 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22706 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22707 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22708 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22709 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22710 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22711 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22712 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22713 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22714 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22715 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22716 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22717 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22718 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22719 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022720 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22721 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22722 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22723 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022724 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22725
22726 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22727 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22728 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22729 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22730 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22731 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22732 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22733 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22734 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22735 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22736 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22737 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22738 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22739 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22740 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22741 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022742 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22743 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22744 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22745 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022746 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
22747
22748 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22749 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22750 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22751 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22752 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22753 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22754 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22755 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22756 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22757 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22758 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22759 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22760 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22761 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22762 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22763 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022764 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22765 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22766 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22767 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022768 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
22769
Rohit Kumara5077932017-09-10 22:05:05 +053022770 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22771 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22772 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22773 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22774 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22775 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22776 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22777 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22778 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22779 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22780 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22781 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22782 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22783 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22784 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22785 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22786 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22787 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22788 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22789 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022790 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022791
22792 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22793 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22794 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22795 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22796 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22797 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22798 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22799 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22800 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22801 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22802 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22803 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22804 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22805 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22806 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22807 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22808 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22809 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22810 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22811 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022812 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022813
22814 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22815 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22816 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22817 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22818 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22819 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22820 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22821 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22822 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22823 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22824 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22825 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22826 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22827 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22828 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22829 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22830 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22831 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22832 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22833 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022834 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022835
22836 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22837 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22838 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22839 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22840 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22841 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22842 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22843 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22844 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22845 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22846 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22847 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22848 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22849 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22850 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22851 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22852 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22853 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22854 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22855 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022856 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022857
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022858 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22859 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22860 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22861 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022862 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022863 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22864 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22865 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22866 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022867 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022868 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22869 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
22870
22871 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22872 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22873 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22874 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022875 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022876 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22877 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22878 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022879 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022880 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22881 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22882 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
22883
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022884 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22885 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22886 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080022887 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22888 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080022889 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22890 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022891
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022892 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22893 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22894 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22895 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22896 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022897 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022898 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22899 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22900 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22901 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022902 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022903 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22904 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22905 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22906 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22907 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022908 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022909 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22910 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
22911 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22912 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22913 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
22914 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22915 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
22916 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
22917 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
22918 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
22919
22920
22921 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22922 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22923 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22924 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22925 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022926 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022927 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
22928
22929 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22930 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22931 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022932 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022933 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
22934
22935 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22936 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22937 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22938 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
22939
22940 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22941 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
22942 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22943 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
22944
Rohit Kumara5077932017-09-10 22:05:05 +053022945 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22946 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
22947 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22948 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
22949
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022950 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22951 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22952 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22953 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22954 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22955 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22956 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22957 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022958 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022959 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
22960 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22961 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22962 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22963 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22964 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22965 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22966 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22967 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22968 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22969 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
22970
22971 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22972 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22973 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22974 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22975 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22976 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22977 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22978 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22979 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22980 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22981 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22982 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
22983
22984 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22985 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22986 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22987 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22988 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22989 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22990 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22991 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22992 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22993 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22994 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22995 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
22996
kunleizdf5a00a2017-11-27 15:27:36 +080022997 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22998 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022999 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023000
23001 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23002 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023003 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023004
23005 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23006 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023007 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
23008
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023009 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
23010 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023011 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23012 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23013 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23014 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
23015
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023016 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
23017 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023018 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23019 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23020 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23021 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
23022
23023 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23024 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23025 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23026 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
23027 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23028 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23029 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
23030 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
23031 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23032 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
23033 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
23034 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
23035 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
23036
23037 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23038 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23039 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23040 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23041 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023042 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023043 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23044 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23045 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23046 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23047 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23048 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23049 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23050 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
23051
23052 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23053 {"HDMI", NULL, "HDMI_RX Port Mixer"},
23054
23055 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23056 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
23057
Karthikeyan Mani57550082018-05-03 18:43:58 -070023058 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
23059 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
23060
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023061 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23062 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
23063
23064 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23065 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23066 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
23067
23068 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23069 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23070 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23071 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023072 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023073 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23074 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23075 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23076 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023077 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023078 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
23079
23080 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23081 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23082 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23083 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023084 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023085 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23086 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23087 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023088 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023089 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
23090
23091 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23092 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23093 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23094 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023095 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023096 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23097 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23098 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
23099
23100 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23101 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23102 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23103 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023104 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023105 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23106 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23107 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23108 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23109 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
23110
Rohit Kumara5077932017-09-10 22:05:05 +053023111 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23112 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23113 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23114 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23115 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
23116 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23117 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23118 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
23119
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023120 /* Backend Enablement */
23121
23122 {"BE_OUT", NULL, "PRI_I2S_RX"},
23123 {"BE_OUT", NULL, "SEC_I2S_RX"},
23124 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
23125 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
23126 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
23127 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23128 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
23129 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
23130 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
23131 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
23132 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023133 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023134 {"BE_OUT", NULL, "USB_AUDIO_RX"},
23135 {"BE_OUT", NULL, "HDMI"},
23136 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070023137 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023138 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
23139 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023140 {"BE_OUT", NULL, "MI2S_RX"},
23141 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
23142 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
23143 {"BE_OUT", NULL, "TERT_MI2S_RX"},
23144 {"BE_OUT", NULL, "SEC_MI2S_RX"},
23145 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
23146 {"BE_OUT", NULL, "PRI_MI2S_RX"},
23147 {"BE_OUT", NULL, "INT0_MI2S_RX"},
23148 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023149 {"BE_OUT", NULL, "INT2_MI2S_RX"},
23150 {"BE_OUT", NULL, "INT3_MI2S_RX"},
23151 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023152 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23153 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
23154 {"BE_OUT", NULL, "INT_FM_RX"},
23155 {"BE_OUT", NULL, "PCM_RX"},
23156 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23157 {"BE_OUT", NULL, "AUX_PCM_RX"},
23158 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
23159 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
23160 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023161 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023162 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23163 {"BE_OUT", NULL, "INT_FM_RX"},
23164 {"BE_OUT", NULL, "PCM_RX"},
23165 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23166 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
23167 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
23168 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
23169 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
23170 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
23171 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
23172 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
23173 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
23174 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
23175 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023176 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023177 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
23178 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
23179 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
23180 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
23181 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
23182 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
23183 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
23184 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
23185 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023186 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
23187 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
23188 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
23189 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023190 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
23191 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023192 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
23193 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
23194 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
23195 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
23196 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
23197 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
23198 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
23199 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023200
23201 {"PRI_I2S_TX", NULL, "BE_IN"},
23202 {"MI2S_TX", NULL, "BE_IN"},
23203 {"QUAT_MI2S_TX", NULL, "BE_IN"},
23204 {"QUIN_MI2S_TX", NULL, "BE_IN"},
23205 {"PRI_MI2S_TX", NULL, "BE_IN"},
23206 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023207 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023208 {"INT2_MI2S_TX", NULL, "BE_IN"},
23209 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023210 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023211 {"INT5_MI2S_TX", NULL, "BE_IN"},
23212 {"SEC_MI2S_TX", NULL, "BE_IN"},
23213 {"SENARY_MI2S_TX", NULL, "BE_IN" },
23214 {"SLIMBUS_0_TX", NULL, "BE_IN" },
23215 {"SLIMBUS_1_TX", NULL, "BE_IN" },
23216 {"SLIMBUS_3_TX", NULL, "BE_IN" },
23217 {"SLIMBUS_4_TX", NULL, "BE_IN" },
23218 {"SLIMBUS_5_TX", NULL, "BE_IN" },
23219 {"SLIMBUS_6_TX", NULL, "BE_IN" },
23220 {"SLIMBUS_7_TX", NULL, "BE_IN" },
23221 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053023222 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023223 {"USB_AUDIO_TX", NULL, "BE_IN" },
23224 {"INT_BT_SCO_TX", NULL, "BE_IN"},
23225 {"INT_FM_TX", NULL, "BE_IN"},
23226 {"PCM_TX", NULL, "BE_IN"},
23227 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23228 {"BE_OUT", NULL, "STUB_RX"},
23229 {"STUB_TX", NULL, "BE_IN"},
23230 {"STUB_1_TX", NULL, "BE_IN"},
23231 {"BE_OUT", NULL, "AUX_PCM_RX"},
23232 {"AUX_PCM_TX", NULL, "BE_IN"},
23233 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
23234 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
23235 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023236 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023237 {"INCALL_RECORD_TX", NULL, "BE_IN"},
23238 {"INCALL_RECORD_RX", NULL, "BE_IN"},
23239 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
23240 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023241 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
23242 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023243 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
23244 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23245 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23246 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
23247 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023248 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
23249 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023250 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
23251 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
23252 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
23253 {"PRI_TDM_TX_0", NULL, "BE_IN"},
23254 {"PRI_TDM_TX_1", NULL, "BE_IN"},
23255 {"PRI_TDM_TX_2", NULL, "BE_IN"},
23256 {"PRI_TDM_TX_3", NULL, "BE_IN"},
23257 {"SEC_TDM_TX_0", NULL, "BE_IN"},
23258 {"SEC_TDM_TX_1", NULL, "BE_IN"},
23259 {"SEC_TDM_TX_2", NULL, "BE_IN"},
23260 {"SEC_TDM_TX_3", NULL, "BE_IN"},
23261 {"TERT_TDM_TX_0", NULL, "BE_IN"},
23262 {"TERT_TDM_TX_1", NULL, "BE_IN"},
23263 {"TERT_TDM_TX_2", NULL, "BE_IN"},
23264 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023265 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023266 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
23267 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
23268 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
23269 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053023270 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023271 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
23272 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
23273 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
23274 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023275 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
23276 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
23277 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
23278 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
23279 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023280 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023281 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
23282 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
23283 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
23284 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
23285 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
23286 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023287 {"PRI_SPDIF_TX", NULL, "BE_IN"},
23288 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023289};
23290
23291static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
23292 struct snd_pcm_hw_params *params)
23293{
23294 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23295 unsigned int be_id = rtd->dai_link->id;
23296
23297 if (be_id >= MSM_BACKEND_DAI_MAX) {
23298 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23299 return -EINVAL;
23300 }
23301
23302 mutex_lock(&routing_lock);
23303 msm_bedais[be_id].sample_rate = params_rate(params);
23304 msm_bedais[be_id].channel = params_channels(params);
23305 msm_bedais[be_id].format = params_format(params);
23306 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
23307 __func__, msm_bedais[be_id].sample_rate,
23308 msm_bedais[be_id].format, be_id);
23309 mutex_unlock(&routing_lock);
23310 return 0;
23311}
23312
23313static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
23314{
23315 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23316 unsigned int be_id = rtd->dai_link->id;
23317 int i, session_type, path_type, topology;
23318 struct msm_pcm_routing_bdai_data *bedai;
23319 struct msm_pcm_routing_fdai_data *fdai;
23320
23321 pr_debug("%s: substream->pcm->id:%s\n",
23322 __func__, substream->pcm->id);
23323
23324 if (be_id >= MSM_BACKEND_DAI_MAX) {
23325 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23326 return -EINVAL;
23327 }
23328
23329 bedai = &msm_bedais[be_id];
23330 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
23331 0 : 1);
23332 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23333 path_type = ADM_PATH_PLAYBACK;
23334 else
23335 path_type = ADM_PATH_LIVE_REC;
23336
23337 mutex_lock(&routing_lock);
23338 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23339 if (!is_mm_lsm_fe_id(i))
23340 continue;
23341 fdai = &fe_dai_map[i][session_type];
23342 if (fdai->strm_id != INVALID_SESSION) {
23343 int idx;
23344 int port_id;
23345 unsigned long copp =
23346 session_copp_map[i][session_type][be_id];
23347 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
23348 if (test_bit(idx, &copp))
23349 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070023350
23351 if (idx >= MAX_COPPS_PER_PORT) {
23352 pr_debug("%s: copp idx is invalid, exiting\n",
23353 __func__);
23354 continue;
23355 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023356 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053023357 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023358 topology = adm_get_topology_for_port_copp_idx(port_id,
23359 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023360 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053023361 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023362 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
23363 __func__, copp, i, session_type, be_id,
23364 topology);
23365 clear_bit(idx,
23366 &session_copp_map[i][session_type][be_id]);
23367 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023368 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023369 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023370 topology);
23371 }
23372 }
23373
23374 bedai->active = 0;
23375 bedai->sample_rate = 0;
23376 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023377 mutex_unlock(&routing_lock);
23378
23379 return 0;
23380}
23381
23382static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
23383{
23384 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23385 unsigned int be_id = rtd->dai_link->id;
23386 int i, path_type, topology;
23387 int session_type = INVALID_SESSION;
23388 struct msm_pcm_routing_bdai_data *bedai;
23389 u32 channels, sample_rate;
23390 uint16_t bits_per_sample = 16, voc_path_type;
23391 struct msm_pcm_routing_fdai_data *fdai;
23392 u32 session_id;
23393 struct media_format_info voc_be_media_format;
23394 bool is_lsm;
23395
23396 pr_debug("%s: substream->pcm->id:%s\n",
23397 __func__, substream->pcm->id);
23398
23399 if (be_id >= MSM_BACKEND_DAI_MAX) {
23400 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23401 return -EINVAL;
23402 }
23403
23404 bedai = &msm_bedais[be_id];
23405
23406 mutex_lock(&routing_lock);
23407 if (bedai->active == 1)
23408 goto done; /* Ignore prepare if back-end already active */
23409
23410 /* AFE port is not active at this point. However, still
23411 * go ahead setting active flag under the notion that
23412 * QDSP6 is able to handle ADM starting before AFE port
23413 * is started.
23414 */
23415 bedai->active = 1;
23416
23417 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23418 if (!(is_mm_lsm_fe_id(i) &&
23419 route_check_fe_id_adm_support(i)))
23420 continue;
23421
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023422 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
23423 SESSION_TYPE_RX : SESSION_TYPE_TX;
23424 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023425 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023426 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023427 path_type = ADM_PATH_COMPRESSED_RX;
23428 else
23429 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023430 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023431 if ((fdai->passthr_mode != LEGACY_PCM) &&
23432 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020023433 path_type = ADM_PATH_COMPRESSED_TX;
23434 else
23435 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023436 }
23437
23438 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
23439 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023440 if (fdai->strm_id != INVALID_SESSION) {
23441 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053023442 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023443
23444 if (session_type == SESSION_TYPE_TX &&
23445 fdai->be_srate &&
23446 (fdai->be_srate != bedai->sample_rate)) {
23447 pr_debug("%s: flush strm %d diff BE rates\n",
23448 __func__,
23449 fdai->strm_id);
23450
23451 if (fdai->event_info.event_func)
23452 fdai->event_info.event_func(
23453 MSM_PCM_RT_EVT_BUF_RECFG,
23454 fdai->event_info.priv_data);
23455 fdai->be_srate = 0; /* might not need it */
23456 }
23457 bits_per_sample = msm_routing_get_bit_width(
23458 bedai->format);
23459
23460 app_type =
23461 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
23462 if (app_type && is_lsm) {
23463 app_type_idx =
23464 msm_pcm_routing_get_lsm_app_type_idx(app_type);
23465 sample_rate =
23466 fe_dai_app_type_cfg[i][session_type][be_id]
23467 .sample_rate;
23468 bits_per_sample =
23469 lsm_app_type_cfg[app_type_idx].bit_width;
23470 } else if (app_type) {
23471 app_type_idx =
23472 msm_pcm_routing_get_app_type_idx(app_type);
23473 sample_rate =
23474 fe_dai_app_type_cfg[i][session_type]
23475 [be_id].sample_rate;
23476 bits_per_sample =
23477 app_type_cfg[app_type_idx].bit_width;
23478 } else
23479 sample_rate = bedai->sample_rate;
23480 /*
23481 * check if ADM needs to be configured with different
23482 * channel mapping than backend
23483 */
23484 if (!bedai->adm_override_ch)
23485 channels = bedai->channel;
23486 else
23487 channels = bedai->adm_override_ch;
23488 acdb_dev_id =
23489 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23490 topology = msm_routing_get_adm_topology(i, session_type,
23491 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023492
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023493 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23494 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23495 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023496 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23497
Surendar Karkae7507512018-07-20 15:46:54 +053023498 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023499 sample_rate, channels, topology,
23500 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053023501 app_type, acdb_dev_id,
23502 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023503 if ((copp_idx < 0) ||
23504 (copp_idx >= MAX_COPPS_PER_PORT)) {
23505 pr_err("%s: adm open failed\n", __func__);
23506 mutex_unlock(&routing_lock);
23507 return -EINVAL;
23508 }
23509 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23510 __func__, i, session_type, be_id);
23511 set_bit(copp_idx,
23512 &session_copp_map[i][session_type][be_id]);
23513
23514 if (msm_is_resample_needed(
23515 sample_rate,
23516 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053023517 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023518 bedai->sample_rate);
23519
23520 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023521 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023522 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023523 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023524 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023525 topology, channels);
23526 }
23527 }
23528
23529 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23530 session_id = msm_pcm_routing_get_voc_sessionid(i);
23531 if (session_id) {
23532 pr_debug("%s voice session_id: 0x%x\n", __func__,
23533 session_id);
23534
23535 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23536 voc_path_type = RX_PATH;
23537 else
23538 voc_path_type = TX_PATH;
23539
23540 voc_set_route_flag(session_id, voc_path_type, 1);
23541
23542 memset(&voc_be_media_format, 0,
23543 sizeof(struct media_format_info));
23544
23545 voc_be_media_format.port_id = bedai->port_id;
23546 voc_be_media_format.num_channels = bedai->channel;
23547 voc_be_media_format.sample_rate = bedai->sample_rate;
23548 voc_be_media_format.bits_per_sample = bedai->format;
23549 /* Defaulting this to 1 for voice call usecases */
23550 voc_be_media_format.channel_mapping[0] = 1;
23551
23552 voc_set_device_config(session_id, voc_path_type,
23553 &voc_be_media_format);
23554
23555 if (voc_get_route_flag(session_id, RX_PATH) &&
23556 voc_get_route_flag(session_id, TX_PATH))
23557 voc_enable_device(session_id);
23558 }
23559 }
23560
23561 /* Check if backend is an external ec ref port and set as needed */
23562 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23563
23564 memset(&voc_be_media_format, 0,
23565 sizeof(struct media_format_info));
23566
23567 /* Get format info for ec ref port from msm_bedais[] */
23568 voc_be_media_format.port_id = bedai->port_id;
23569 voc_be_media_format.num_channels = bedai->channel;
23570 voc_be_media_format.bits_per_sample = bedai->format;
23571 voc_be_media_format.sample_rate = bedai->sample_rate;
23572 /* Defaulting this to 1 for voice call usecases */
23573 voc_be_media_format.channel_mapping[0] = 1;
23574 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23575 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23576 __func__, voc_be_media_format.port_id,
23577 voc_be_media_format.num_channels,
23578 voc_be_media_format.bits_per_sample,
23579 voc_be_media_format.sample_rate);
23580 }
23581
23582done:
23583 mutex_unlock(&routing_lock);
23584
23585 return 0;
23586}
23587
23588static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23589 int fe_id)
23590{
23591 int index, topo_id, be_idx;
23592 unsigned long pp_config = 0;
23593 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023594 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023595 bool compr_passthr_mode = true;
23596
23597 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23598
23599 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23600 pr_err("%s: Device pp params on invalid port %d\n",
23601 __func__, port_id);
23602 return -EINVAL;
23603 }
23604
23605 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23606 if (port_id == msm_bedais[be_idx].port_id)
23607 break;
23608 }
23609
23610 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23611 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23612 return -EINVAL;
23613 }
23614
23615 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23616 if (msm_bedais_pp_params[index].port_id == port_id)
23617 break;
23618 }
23619 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23620 pr_err("%s: Invalid backend pp params index %d\n",
23621 __func__, index);
23622 return -EINVAL;
23623 }
23624
23625 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23626 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23627 pr_err("%s: Invalid passthrough topology 0x%x\n",
23628 __func__, topo_id);
23629 return -EINVAL;
23630 }
23631
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023632 session_type =
23633 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23634 SESSION_TYPE_RX : SESSION_TYPE_TX;
23635
23636 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23637 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023638 compr_passthr_mode = false;
23639
23640 pp_config = msm_bedais_pp_params[index].pp_params_config;
23641 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23642 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23643 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23644 mute_on = msm_bedais_pp_params[index].mute_on;
23645 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23646 adm_send_compressed_device_mute(port_id,
23647 copp_idx,
23648 mute_on);
23649 }
23650 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23651 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23652 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23653 &pp_config);
23654 latency = msm_bedais_pp_params[index].latency;
23655 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23656 adm_send_compressed_device_latency(port_id,
23657 copp_idx,
23658 latency);
23659 }
23660 return 0;
23661}
23662
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023663static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23664{
23665 uint32_t topology = NULL_COPP_TOPOLOGY;
23666 void *cal_info = NULL;
23667 uint32_t size = 0;
23668
23669 /* Retrieve cal_info size from cal data*/
23670 size = data_size - sizeof(struct audio_cal_type_basic);
23671 cal_info = kzalloc(size, GFP_KERNEL);
23672
23673 if (!cal_info)
23674 goto done;
23675
23676 memcpy(cal_info,
23677 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23678
23679 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23680 kfree(cal_info);
23681 cal_info = NULL;
23682
23683done:
23684 pr_debug("%s: Using topology %d\n", __func__, topology);
23685
23686 return topology;
23687}
23688
23689static void msm_routing_load_topology(size_t data_size, void *data)
23690{
23691 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023692 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023693
23694 topology_id = msm_routing_get_topology(data_size, data);
23695 if (topology_id != NULL_COPP_TOPOLOGY)
23696 ret = q6core_load_unload_topo_modules(topology_id,
23697 CORE_LOAD_TOPOLOGY);
23698 if (ret < 0)
23699 pr_debug("%s %d load topology failed\n",
23700 __func__, topology_id);
23701
23702}
23703
23704static void msm_routing_unload_topology(uint32_t topology_id)
23705{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023706 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023707
23708 if (topology_id != NULL_COPP_TOPOLOGY)
23709 ret = q6core_load_unload_topo_modules(topology_id,
23710 CORE_UNLOAD_TOPOLOGY);
23711 if (ret < 0)
23712 pr_debug("%s %d unload topology failed\n",
23713 __func__, topology_id);
23714
23715}
23716
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023717static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23718 struct snd_ctl_elem_value *ucontrol)
23719{
23720 int pp_id = ucontrol->value.integer.value[0];
23721 int port_id = 0;
23722 int index, be_idx, i, topo_id, idx;
23723 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023724 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023725 bool compr_passthr_mode = true;
23726
23727 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23728
23729 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23730 port_id = msm_bedais[be_idx].port_id;
23731 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
23732 break;
23733 }
23734
23735 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23736 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23737 return -EINVAL;
23738 }
23739
23740 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23741 if (msm_bedais_pp_params[index].port_id == port_id)
23742 break;
23743 }
23744 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23745 pr_err("%s: Invalid pp params backend index %d\n",
23746 __func__, index);
23747 return -EINVAL;
23748 }
23749
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023750 session_type =
23751 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23752 SESSION_TYPE_RX : SESSION_TYPE_TX;
23753
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023754 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
23755 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023756 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
23757 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023758 compr_passthr_mode = false;
23759
23760 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23761 unsigned long copp =
23762 session_copp_map[i]
23763 [SESSION_TYPE_RX][be_idx];
23764 if (!test_bit(idx, &copp))
23765 continue;
23766 topo_id = adm_get_topology_for_port_copp_idx(port_id,
23767 idx);
23768 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
23769 continue;
23770 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
23771 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023772 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023773 switch (pp_id) {
23774 case ADM_PP_PARAM_MUTE_ID:
23775 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23776 mute = ucontrol->value.integer.value[1] ? true : false;
23777 msm_bedais_pp_params[index].mute_on = mute;
23778 set_bit(ADM_PP_PARAM_MUTE_BIT,
23779 &msm_bedais_pp_params[index].pp_params_config);
23780 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23781 adm_send_compressed_device_mute(port_id,
23782 idx, mute);
23783 break;
23784 case ADM_PP_PARAM_LATENCY_ID:
23785 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23786 msm_bedais_pp_params[index].latency =
23787 ucontrol->value.integer.value[1];
23788 set_bit(ADM_PP_PARAM_LATENCY_BIT,
23789 &msm_bedais_pp_params[index].pp_params_config);
23790 latency = msm_bedais_pp_params[index].latency =
23791 ucontrol->value.integer.value[1];
23792 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23793 adm_send_compressed_device_latency(port_id,
23794 idx, latency);
23795 break;
23796 default:
23797 pr_info("%s, device pp param %d not supported\n",
23798 __func__, pp_id);
23799 break;
23800 }
23801 }
23802 }
23803 return 0;
23804}
23805
23806static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23807 struct snd_ctl_elem_value *ucontrol)
23808{
23809 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
23810 return 0;
23811}
23812
23813static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
23814 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
23815 0, 3, msm_routing_get_device_pp_params_mixer,
23816 msm_routing_put_device_pp_params_mixer),
23817};
23818
23819static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
23820 struct snd_ctl_elem_value *ucontrol)
23821{
23822 ucontrol->value.integer.value[0] =
23823 core_get_license_status(ASM_MEDIA_FMT_APTX);
23824 pr_debug("%s: status %ld\n", __func__,
23825 ucontrol->value.integer.value[0]);
23826 return 0;
23827}
23828
23829static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
23830 struct snd_ctl_elem_value *ucontrol)
23831{
23832 int32_t status = 0;
23833
23834 status = core_set_license(ucontrol->value.integer.value[0],
23835 APTX_CLASSIC_DEC_LICENSE_ID);
23836 pr_debug("%s: status %d\n", __func__, status);
23837 return status;
23838}
23839
23840static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
23841 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
23842 0xFFFF, 0, msm_aptx_dec_license_control_get,
23843 msm_aptx_dec_license_control_put),
23844};
23845
23846static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
23847 struct snd_ctl_elem_info *uinfo)
23848{
23849 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
23850 uinfo->count = sizeof(be_dai_name_table);
23851 return 0;
23852}
23853
23854static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
23855 unsigned int __user *bytes,
23856 unsigned int size)
23857{
23858 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023859 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023860
23861 if (size < sizeof(be_dai_name_table)) {
23862 pr_err("%s: invalid size %d requested, returning\n",
23863 __func__, size);
23864 ret = -EINVAL;
23865 goto done;
23866 }
23867
23868 /*
23869 * Fill be_dai_name_table from msm_bedais table to reduce code changes
23870 * needed when adding new backends
23871 */
23872 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23873 be_dai_name_table[i].be_id = i;
23874 strlcpy(be_dai_name_table[i].be_name,
23875 msm_bedais[i].name,
23876 LPASS_BE_NAME_MAX_LENGTH);
23877 }
23878
23879 ret = copy_to_user(bytes, &be_dai_name_table,
23880 sizeof(be_dai_name_table));
23881 if (ret) {
23882 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
23883 ret = -EFAULT;
23884 }
23885
23886done:
23887 return ret;
23888}
23889
23890static const struct snd_kcontrol_new
23891 msm_routing_be_dai_name_table_mixer_controls[] = {
23892 {
23893 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
23894 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
23895 .info = msm_routing_be_dai_name_table_info,
23896 .name = "Backend DAI Name Table",
23897 .tlv.c = snd_soc_bytes_tlv_callback,
23898 .private_value = (unsigned long) &(struct soc_bytes_ext) {
23899 .max = sizeof(be_dai_name_table),
23900 .get = msm_routing_be_dai_name_table_tlv_get,
23901 }
23902 },
23903};
23904
23905static int msm_routing_stereo_channel_reverse_control_get(
23906 struct snd_kcontrol *kcontrol,
23907 struct snd_ctl_elem_value *ucontrol)
23908{
23909 ucontrol->value.integer.value[0] = swap_ch;
23910 pr_debug("%s: Swap channel value: %ld\n", __func__,
23911 ucontrol->value.integer.value[0]);
23912 return 0;
23913}
23914
23915static int msm_routing_stereo_channel_reverse_control_put(
23916 struct snd_kcontrol *kcontrol,
23917 struct snd_ctl_elem_value *ucontrol)
23918{
23919 int i, idx, be_index, port_id;
23920 int ret = 0;
23921 unsigned long copp;
23922
23923 pr_debug("%s Swap channel value:%ld\n", __func__,
23924 ucontrol->value.integer.value[0]);
23925
23926 swap_ch = ucontrol->value.integer.value[0];
23927
23928 mutex_lock(&routing_lock);
23929 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
23930 port_id = msm_bedais[be_index].port_id;
23931 if (!msm_bedais[be_index].active)
23932 continue;
23933
23934 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
23935 MSM_FRONTEND_DAI_MM_SIZE) {
23936 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
23937 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23938 if (!test_bit(idx, &copp))
23939 continue;
23940
23941 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
23942 __func__, port_id, idx);
23943 ret = adm_swap_speaker_channels(
23944 port_id, idx,
23945 msm_bedais[be_index].sample_rate,
23946 swap_ch);
23947 if (ret) {
23948 pr_err("%s:Swap_channel failed, err=%d\n",
23949 __func__, ret);
23950 goto done;
23951 }
23952 }
23953 }
23954 }
23955done:
23956 mutex_unlock(&routing_lock);
23957 return ret;
23958}
23959
23960static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
23961 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
23962 1, 0, msm_routing_stereo_channel_reverse_control_get,
23963 msm_routing_stereo_channel_reverse_control_put),
23964};
23965
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023966static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
23967 struct snd_ctl_elem_info *uinfo)
23968{
23969 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
23970 uinfo->count = 1;
23971 return 0;
23972}
23973
23974static int msm_routing_instance_id_support_put(
23975 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23976{
23977 bool supported = ucontrol->value.integer.value[0] ? true : false;
23978
23979 q6common_update_instance_id_support(supported);
23980 return 0;
23981}
23982
23983static int msm_routing_instance_id_support_get(
23984 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23985{
23986 bool supported = false;
23987
23988 supported = q6common_is_instance_id_supported();
23989 ucontrol->value.integer.value[0] = supported ? 1 : 0;
23990
23991 return 0;
23992}
23993
23994static const struct snd_kcontrol_new
23995 msm_routing_feature_support_mixer_controls[] = {
23996 {
23997 .access = SNDRV_CTL_ELEM_ACCESS_READ |
23998 SNDRV_CTL_ELEM_ACCESS_WRITE,
23999 .info = msm_routing_instance_id_support_info,
24000 .name = "Instance ID Support",
24001 .put = msm_routing_instance_id_support_put,
24002 .get = msm_routing_instance_id_support_get,
24003 },
24004};
24005
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024006static const struct snd_pcm_ops msm_routing_pcm_ops = {
24007 .hw_params = msm_pcm_routing_hw_params,
24008 .close = msm_pcm_routing_close,
24009 .prepare = msm_pcm_routing_prepare,
24010};
24011
24012/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080024013static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024014{
Meng Wangee084a02018-09-04 16:11:58 +080024015 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024016 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080024017 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024018 ARRAY_SIZE(intercon));
24019
Meng Wangee084a02018-09-04 16:11:58 +080024020 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024021
Meng Wangee084a02018-09-04 16:11:58 +080024022 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024023 ARRAY_SIZE(lsm_controls));
24024
Meng Wangee084a02018-09-04 16:11:58 +080024025 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024026 ARRAY_SIZE(aanc_slim_0_rx_mux));
24027
Meng Wangee084a02018-09-04 16:11:58 +080024028 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053024029 ARRAY_SIZE(aanc_noise_level));
24030
Meng Wangee084a02018-09-04 16:11:58 +080024031 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024032 ARRAY_SIZE(msm_voc_session_controls));
24033
Meng Wangee084a02018-09-04 16:11:58 +080024034 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024035 ARRAY_SIZE(app_type_cfg_controls));
24036
Meng Wangee084a02018-09-04 16:11:58 +080024037 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024038 ARRAY_SIZE(lsm_app_type_cfg_controls));
24039
Meng Wangee084a02018-09-04 16:11:58 +080024040 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070024041 ARRAY_SIZE(module_cfg_controls));
24042
Meng Wangee084a02018-09-04 16:11:58 +080024043 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024044 stereo_to_custom_stereo_controls,
24045 ARRAY_SIZE(stereo_to_custom_stereo_controls));
24046
Meng Wangee084a02018-09-04 16:11:58 +080024047 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024048 ARRAY_SIZE(ec_ref_param_controls));
24049
Meng Wangee084a02018-09-04 16:11:58 +080024050 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024051 ARRAY_SIZE(channel_mixer_controls));
24052
Meng Wangee084a02018-09-04 16:11:58 +080024053 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024054
Meng Wangee084a02018-09-04 16:11:58 +080024055 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024056
Meng Wangee084a02018-09-04 16:11:58 +080024057 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024058
Meng Wangee084a02018-09-04 16:11:58 +080024059 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024060 use_ds1_or_ds2_controls,
24061 ARRAY_SIZE(use_ds1_or_ds2_controls));
24062
Meng Wangee084a02018-09-04 16:11:58 +080024063 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024064 device_pp_params_mixer_controls,
24065 ARRAY_SIZE(device_pp_params_mixer_controls));
24066
Meng Wangee084a02018-09-04 16:11:58 +080024067 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024068 msm_routing_be_dai_name_table_mixer_controls,
24069 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
24070
Meng Wangee084a02018-09-04 16:11:58 +080024071 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024072 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024073 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024074 ARRAY_SIZE(adm_channel_config_controls));
24075
Meng Wangee084a02018-09-04 16:11:58 +080024076 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024077 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024078 snd_soc_add_component_controls(component,
24079 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024080 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080024081 snd_soc_add_component_controls(
24082 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024083 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
24084
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024085 return 0;
24086}
24087
24088int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
24089{
24090 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
24091}
24092
24093void msm_routing_pcm_free(struct snd_pcm *pcm)
24094{
24095 msm_pcm_routing_hwdep_free(pcm);
24096}
24097
Meng Wangee084a02018-09-04 16:11:58 +080024098static struct snd_soc_component_driver msm_soc_routing_component = {
24099 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024100 .ops = &msm_routing_pcm_ops,
24101 .probe = msm_routing_probe,
24102 .pcm_new = msm_routing_pcm_new,
24103 .pcm_free = msm_routing_pcm_free,
24104};
24105
24106static int msm_routing_pcm_probe(struct platform_device *pdev)
24107{
24108
24109 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080024110 return snd_soc_register_component(&pdev->dev,
24111 &msm_soc_routing_component,
24112 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024113}
24114
24115static int msm_routing_pcm_remove(struct platform_device *pdev)
24116{
Meng Wangee084a02018-09-04 16:11:58 +080024117 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024118 return 0;
24119}
24120
24121static const struct of_device_id msm_pcm_routing_dt_match[] = {
24122 {.compatible = "qcom,msm-pcm-routing"},
24123 {}
24124};
24125MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
24126
24127static struct platform_driver msm_routing_pcm_driver = {
24128 .driver = {
24129 .name = "msm-pcm-routing",
24130 .owner = THIS_MODULE,
24131 .of_match_table = msm_pcm_routing_dt_match,
24132 },
24133 .probe = msm_routing_pcm_probe,
24134 .remove = msm_routing_pcm_remove,
24135};
24136
24137int msm_routing_check_backend_enabled(int fedai_id)
24138{
24139 int i;
24140
24141 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
24142 /* bad ID assigned in machine driver */
24143 pr_err("%s: bad MM ID\n", __func__);
24144 return 0;
24145 }
24146 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24147 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
24148 return msm_bedais[i].active;
24149 }
24150 return 0;
24151}
24152
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024153static int get_cal_type_index(int32_t cal_type)
24154{
24155 int ret = -EINVAL;
24156
24157 switch (cal_type) {
24158 case ADM_TOPOLOGY_CAL_TYPE:
24159 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
24160 break;
24161 case ADM_LSM_TOPOLOGY_CAL_TYPE:
24162 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
24163 break;
24164 default:
24165 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
24166 }
24167 return ret;
24168}
24169
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024170static int msm_routing_set_cal(int32_t cal_type,
24171 size_t data_size, void *data)
24172{
24173 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024174 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024175 pr_debug("%s\n", __func__);
24176
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024177 cal_index = get_cal_type_index(cal_type);
24178 if (cal_index < 0) {
24179 pr_err("%s: Could not get cal index %d\n",
24180 __func__, cal_index);
24181 ret = -EINVAL;
24182 goto done;
24183 }
24184
24185 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024186 if (ret < 0) {
24187 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
24188 __func__, ret, cal_type);
24189 ret = -EINVAL;
24190 goto done;
24191 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024192 /* Pre-load if it is ADM topology */
24193 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
24194 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
24195 msm_routing_load_topology(data_size, data);
24196 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024197done:
24198 return ret;
24199}
24200
24201static void msm_routing_delete_cal_data(void)
24202{
24203 pr_debug("%s\n", __func__);
24204
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024205 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024206}
24207
24208static int msm_routing_init_cal_data(void)
24209{
24210 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024211 struct cal_type_info cal_type_info[] = {
24212 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024213 {NULL, NULL, NULL,
24214 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024215 {NULL, NULL, cal_utils_match_buf_num} },
24216
24217 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
24218 {NULL, NULL, NULL,
24219 msm_routing_set_cal, NULL, NULL} },
24220 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024221 };
24222 pr_debug("%s\n", __func__);
24223
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024224 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
24225 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024226 if (ret < 0) {
24227 pr_err("%s: could not create cal type!\n",
24228 __func__);
24229 ret = -EINVAL;
24230 goto err;
24231 }
24232
24233 return ret;
24234err:
24235 msm_routing_delete_cal_data();
24236 return ret;
24237}
24238
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053024239int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024240{
24241 mutex_init(&routing_lock);
24242 if (msm_routing_init_cal_data())
24243 pr_err("%s: could not init cal data!\n", __func__);
24244
24245 afe_set_routing_callback(
24246 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
24247
24248 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24249 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
24250
24251 return platform_driver_register(&msm_routing_pcm_driver);
24252}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024253
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053024254void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024255{
24256 msm_routing_delete_cal_data();
24257 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24258 mutex_destroy(&routing_lock);
24259 platform_driver_unregister(&msm_routing_pcm_driver);
24260}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024261
24262MODULE_DESCRIPTION("MSM routing platform driver");
24263MODULE_LICENSE("GPL v2");