blob: cbef55cd734f8fdc74b3c039adeae73233697c79 [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),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009377 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9378 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309379 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9382 MSM_BACKEND_DAI_SEC_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9390 MSM_BACKEND_DAI_QUAT_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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9394 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9398 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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_FM_TX", SND_SOC_NOPM,
9402 MSM_BACKEND_DAI_INT_FM_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("AFE_PCM_TX", SND_SOC_NOPM,
9406 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
9410 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
9414 MSM_BACKEND_DAI_INCALL_RECORD_TX,
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("SLIM_4_TX", SND_SOC_NOPM,
9418 MSM_BACKEND_DAI_SLIMBUS_4_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_6_TX", SND_SOC_NOPM,
9422 MSM_BACKEND_DAI_SLIMBUS_6_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("QUIN_MI2S_TX", SND_SOC_NOPM,
9426 MSM_BACKEND_DAI_QUINARY_MI2S_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("PRI_TDM_TX_0", SND_SOC_NOPM,
9430 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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_1", SND_SOC_NOPM,
9434 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
9438 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
9442 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
9446 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
9450 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
9454 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
9458 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
9462 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
9466 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
9470 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
9474 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
9478 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
9482 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
9486 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
9490 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
9494 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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_1", SND_SOC_NOPM,
9498 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
9502 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
9506 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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("SLIM_7_TX", SND_SOC_NOPM,
9510 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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_8_TX", SND_SOC_NOPM,
9514 MSM_BACKEND_DAI_SLIMBUS_8_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("USB_AUDIO_TX", SND_SOC_NOPM,
9518 MSM_BACKEND_DAI_USB_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309521 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9522 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9523 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9524 msm_routing_put_audio_mixer),
9525 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9526 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
9530 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9531 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9532 msm_routing_put_audio_mixer),
9533 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9534 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
9538 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9539 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9540 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009541 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9542 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9543 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9544 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309545 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9546 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9547 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9548 msm_routing_put_audio_mixer),
9549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9550 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
9554 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
9558 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
9562 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
9566 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9567 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9568 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009569 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9570 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9571 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9572 msm_routing_put_audio_mixer),
9573 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9574 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9575 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9576 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309577 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9578 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9579 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9580 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309581 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9582 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9583 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9584 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309585};
9586
9587static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009588 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9589 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309590 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009592 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9593 MSM_BACKEND_DAI_MI2S_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("PRI_MI2S_TX", SND_SOC_NOPM,
9597 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
9601 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
9605 MSM_BACKEND_DAI_TERTIARY_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("INT2_MI2S_TX", SND_SOC_NOPM,
9609 MSM_BACKEND_DAI_INT2_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("INT3_MI2S_TX", SND_SOC_NOPM,
9613 MSM_BACKEND_DAI_INT3_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("QUAT_MI2S_TX", SND_SOC_NOPM,
9617 MSM_BACKEND_DAI_QUATERNARY_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("SLIM_0_TX", SND_SOC_NOPM,
9621 MSM_BACKEND_DAI_SLIMBUS_0_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_6_TX", SND_SOC_NOPM,
9625 MSM_BACKEND_DAI_SLIMBUS_6_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_1_TX", SND_SOC_NOPM,
9629 MSM_BACKEND_DAI_SLIMBUS_1_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("QUIN_MI2S_TX", SND_SOC_NOPM,
9633 MSM_BACKEND_DAI_QUINARY_MI2S_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("PRI_TDM_TX_0", SND_SOC_NOPM,
9637 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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_1", SND_SOC_NOPM,
9641 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
9645 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
9649 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
9653 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
9657 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
9661 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
9665 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
9669 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
9673 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
9677 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
9681 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
9685 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
9689 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
9693 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
9697 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
9701 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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_1", SND_SOC_NOPM,
9705 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
9709 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
9713 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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("SLIM_8_TX", SND_SOC_NOPM,
9717 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("USB_AUDIO_TX", SND_SOC_NOPM,
9721 MSM_BACKEND_DAI_USB_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309724 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9725 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9726 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9727 msm_routing_put_audio_mixer),
9728 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9729 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
9733 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9734 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9735 msm_routing_put_audio_mixer),
9736 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9737 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
9741 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9742 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9743 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009744 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9745 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9746 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9747 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309748 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9749 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9750 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9751 msm_routing_put_audio_mixer),
9752 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9753 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
9757 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
9761 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
9765 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
9769 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9770 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9771 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009772 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9773 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9774 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9775 msm_routing_put_audio_mixer),
9776 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9777 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9778 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9779 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309780 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9781 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9782 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9783 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309784 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9785 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9786 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9787 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309788};
9789
9790static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009791 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9792 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309793 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009795 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9796 MSM_BACKEND_DAI_INT_FM_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009799 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9800 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309801 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("AFE_PCM_TX", SND_SOC_NOPM,
9804 MSM_BACKEND_DAI_AFE_PCM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9808 MSM_BACKEND_DAI_INT_BT_SCO_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("AUX_PCM_TX", SND_SOC_NOPM,
9812 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9816 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9820 MSM_BACKEND_DAI_TERT_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("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9824 MSM_BACKEND_DAI_QUAT_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("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9828 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +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("PRI_MI2S_TX", SND_SOC_NOPM,
9832 MSM_BACKEND_DAI_PRI_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
9836 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("INT2_MI2S_TX", SND_SOC_NOPM,
9840 MSM_BACKEND_DAI_INT2_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("INT3_MI2S_TX", SND_SOC_NOPM,
9844 MSM_BACKEND_DAI_INT3_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("PRI_TDM_TX_0", SND_SOC_NOPM,
9848 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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("PRI_TDM_TX_1", SND_SOC_NOPM,
9852 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
9856 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
9860 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
9864 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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("SEC_TDM_TX_1", SND_SOC_NOPM,
9868 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
9872 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
9876 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
9880 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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("TERT_TDM_TX_1", SND_SOC_NOPM,
9884 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
9888 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
9892 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
9896 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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("QUAT_TDM_TX_1", SND_SOC_NOPM,
9900 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
9904 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
9908 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
9912 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_1", SND_SOC_NOPM,
9916 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +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_2", SND_SOC_NOPM,
9920 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
9924 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309927 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9928 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9929 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9930 msm_routing_put_audio_mixer),
9931 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9932 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9933 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9934 msm_routing_put_audio_mixer),
9935 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9936 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9937 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9938 msm_routing_put_audio_mixer),
9939 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9940 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9941 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9942 msm_routing_put_audio_mixer),
9943 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9944 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9945 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9946 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009947 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9948 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9949 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9950 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309951 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9952 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9953 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9954 msm_routing_put_audio_mixer),
9955 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9956 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9957 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9958 msm_routing_put_audio_mixer),
9959 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9960 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
9964 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
9968 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
9972 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9973 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9974 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009975 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9976 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9977 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9978 msm_routing_put_audio_mixer),
9979 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9980 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9981 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9982 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309983 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9984 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9985 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9986 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309987};
9988
9989static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009990 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9991 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309992 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009994 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9995 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309996 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009998 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9999 MSM_BACKEND_DAI_INT_FM_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010002 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10003 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010004 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("AFE_PCM_TX", SND_SOC_NOPM,
10007 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
10011 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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("VOC_REC_UL", SND_SOC_NOPM,
10015 MSM_BACKEND_DAI_INCALL_RECORD_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("TERT_TDM_TX_0", SND_SOC_NOPM,
10019 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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("PRI_TDM_TX_0", SND_SOC_NOPM,
10023 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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("PRI_TDM_TX_1", SND_SOC_NOPM,
10027 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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("PRI_TDM_TX_2", SND_SOC_NOPM,
10031 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
10035 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
10039 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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("SEC_TDM_TX_1", SND_SOC_NOPM,
10043 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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("SEC_TDM_TX_2", SND_SOC_NOPM,
10047 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
10051 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_1", SND_SOC_NOPM,
10055 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_2", SND_SOC_NOPM,
10059 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_3", SND_SOC_NOPM,
10063 MSM_BACKEND_DAI_TERT_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("QUAT_TDM_TX_0", SND_SOC_NOPM,
10067 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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("QUAT_TDM_TX_1", SND_SOC_NOPM,
10071 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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("QUAT_TDM_TX_2", SND_SOC_NOPM,
10075 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
10079 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
10083 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_1", SND_SOC_NOPM,
10087 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_2", SND_SOC_NOPM,
10091 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_3", SND_SOC_NOPM,
10095 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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("SEC_MI2S_TX", SND_SOC_NOPM,
10099 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("TERT_MI2S_TX", SND_SOC_NOPM,
10103 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("INT2_MI2S_TX", SND_SOC_NOPM,
10107 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("INT3_MI2S_TX", SND_SOC_NOPM,
10111 MSM_BACKEND_DAI_INT3_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("QUAT_MI2S_TX", SND_SOC_NOPM,
10115 MSM_BACKEND_DAI_QUATERNARY_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("USB_AUDIO_TX", SND_SOC_NOPM,
10119 MSM_BACKEND_DAI_USB_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010122 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10123 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10124 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10125 msm_routing_put_audio_mixer),
10126 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10127 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10128 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10129 msm_routing_put_audio_mixer),
10130 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10131 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10132 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10133 msm_routing_put_audio_mixer),
10134 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10135 MSM_BACKEND_DAI_VA_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("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10139 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10140 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10141 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010142 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10143 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10144 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10145 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010146 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10147 MSM_BACKEND_DAI_TX_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("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10151 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10152 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10153 msm_routing_put_audio_mixer),
10154 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10155 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10156 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10157 msm_routing_put_audio_mixer),
10158 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10159 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
10163 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
10167 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10168 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10169 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010170 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10171 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10172 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10173 msm_routing_put_audio_mixer),
10174 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10175 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10176 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10177 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010178 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10179 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10180 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10181 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010182};
10183
10184static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010185 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10186 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010187 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010189 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10190 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010191 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010193 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10194 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010195 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010197 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10198 MSM_BACKEND_DAI_AFE_PCM_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010201 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10202 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010203 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
10206 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10210 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10214 MSM_BACKEND_DAI_TERT_AUXPCM_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("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10218 MSM_BACKEND_DAI_QUAT_AUXPCM_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("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10222 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +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("PRI_MI2S_TX", SND_SOC_NOPM,
10226 MSM_BACKEND_DAI_PRI_MI2S_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_MI2S_TX", SND_SOC_NOPM,
10230 MSM_BACKEND_DAI_TERTIARY_MI2S_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("INT2_MI2S_TX", SND_SOC_NOPM,
10234 MSM_BACKEND_DAI_INT2_MI2S_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("INT3_MI2S_TX", SND_SOC_NOPM,
10238 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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_TDM_TX_0", SND_SOC_NOPM,
10242 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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("PRI_TDM_TX_1", SND_SOC_NOPM,
10246 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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("PRI_TDM_TX_2", SND_SOC_NOPM,
10250 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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("PRI_TDM_TX_3", SND_SOC_NOPM,
10254 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
10258 MSM_BACKEND_DAI_SEC_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("SEC_TDM_TX_1", SND_SOC_NOPM,
10262 MSM_BACKEND_DAI_SEC_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("SEC_TDM_TX_2", SND_SOC_NOPM,
10266 MSM_BACKEND_DAI_SEC_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("SEC_TDM_TX_3", SND_SOC_NOPM,
10270 MSM_BACKEND_DAI_SEC_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("TERT_TDM_TX_0", SND_SOC_NOPM,
10274 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_1", SND_SOC_NOPM,
10278 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_2", SND_SOC_NOPM,
10282 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_3", SND_SOC_NOPM,
10286 MSM_BACKEND_DAI_TERT_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("QUAT_TDM_TX_0", SND_SOC_NOPM,
10290 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_1", SND_SOC_NOPM,
10294 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_2", SND_SOC_NOPM,
10298 MSM_BACKEND_DAI_QUAT_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("QUAT_TDM_TX_3", SND_SOC_NOPM,
10302 MSM_BACKEND_DAI_QUAT_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("QUIN_TDM_TX_0", SND_SOC_NOPM,
10306 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_1", SND_SOC_NOPM,
10310 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_2", SND_SOC_NOPM,
10314 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_3", SND_SOC_NOPM,
10318 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +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("SEC_MI2S_TX", SND_SOC_NOPM,
10322 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("QUAT_MI2S_TX", SND_SOC_NOPM,
10326 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("SLIM_7_TX", SND_SOC_NOPM,
10330 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("SLIM_8_TX", SND_SOC_NOPM,
10334 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("USB_AUDIO_TX", SND_SOC_NOPM,
10338 MSM_BACKEND_DAI_USB_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010341 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10342 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10343 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10344 msm_routing_put_audio_mixer),
10345 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10346 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10347 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10348 msm_routing_put_audio_mixer),
10349 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10350 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10351 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10352 msm_routing_put_audio_mixer),
10353 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10354 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10355 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10356 msm_routing_put_audio_mixer),
10357 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10358 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10359 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10360 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010361 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10362 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10363 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10364 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010365 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10366 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10367 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10368 msm_routing_put_audio_mixer),
10369 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10370 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10371 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10372 msm_routing_put_audio_mixer),
10373 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10374 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10375 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10376 msm_routing_put_audio_mixer),
10377 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10378 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10379 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10380 msm_routing_put_audio_mixer),
10381 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10382 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
10386 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10387 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10388 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010389 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10390 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10391 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10392 msm_routing_put_audio_mixer),
10393 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10394 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10395 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10396 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010397 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10398 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10399 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10400 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010401 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10402 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10403 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10404 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010405};
10406
10407static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010408 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10409 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010410 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010412 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10413 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010414 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010416 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10417 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010418 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010420 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10421 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010422 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010424 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10425 MSM_BACKEND_DAI_TERTIARY_MI2S_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("INT2_MI2S_TX", SND_SOC_NOPM,
10429 MSM_BACKEND_DAI_INT2_MI2S_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010432 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10433 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010434 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("QUAT_MI2S_TX", SND_SOC_NOPM,
10437 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
10441 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +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("AUX_PCM_UL_TX", SND_SOC_NOPM,
10445 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10449 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10453 MSM_BACKEND_DAI_TERT_AUXPCM_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_AUXPCM_UL_TX", SND_SOC_NOPM,
10457 MSM_BACKEND_DAI_QUAT_AUXPCM_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("PRI_TDM_TX_0", SND_SOC_NOPM,
10461 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_1", SND_SOC_NOPM,
10465 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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("PRI_TDM_TX_2", SND_SOC_NOPM,
10469 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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("PRI_TDM_TX_3", SND_SOC_NOPM,
10473 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
10477 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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("SEC_TDM_TX_1", SND_SOC_NOPM,
10481 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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("SEC_TDM_TX_2", SND_SOC_NOPM,
10485 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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("SEC_TDM_TX_3", SND_SOC_NOPM,
10489 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
10493 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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("TERT_TDM_TX_1", SND_SOC_NOPM,
10497 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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("TERT_TDM_TX_2", SND_SOC_NOPM,
10501 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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("TERT_TDM_TX_3", SND_SOC_NOPM,
10505 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
10509 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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("QUAT_TDM_TX_1", SND_SOC_NOPM,
10513 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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("QUAT_TDM_TX_2", SND_SOC_NOPM,
10517 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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("QUAT_TDM_TX_3", SND_SOC_NOPM,
10521 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
10525 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_1", SND_SOC_NOPM,
10529 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_2", SND_SOC_NOPM,
10533 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_3", SND_SOC_NOPM,
10537 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +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("USB_AUDIO_TX", SND_SOC_NOPM,
10541 MSM_BACKEND_DAI_USB_TX,
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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010544 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10545 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10546 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10547 msm_routing_put_audio_mixer),
10548 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10549 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10550 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10551 msm_routing_put_audio_mixer),
10552 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10553 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10554 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10555 msm_routing_put_audio_mixer),
10556 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10557 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10558 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10559 msm_routing_put_audio_mixer),
10560 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10561 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10562 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10563 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010564 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10565 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10566 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10567 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010568 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10569 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10570 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10571 msm_routing_put_audio_mixer),
10572 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10573 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10574 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10575 msm_routing_put_audio_mixer),
10576 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10577 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10578 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10579 msm_routing_put_audio_mixer),
10580 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10581 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10582 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10583 msm_routing_put_audio_mixer),
10584 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10585 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10586 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10587 msm_routing_put_audio_mixer),
10588 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10589 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10590 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10591 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010592 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10593 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10594 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10595 msm_routing_put_audio_mixer),
10596 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10597 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10598 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10599 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010600 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10601 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10602 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10603 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010604};
10605
10606static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010607 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10608 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010609 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010611 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10612 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010613 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010615 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10616 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010617 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010619 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10620 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010621 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010623 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10624 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010625 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010627 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10628 MSM_BACKEND_DAI_INT3_MI2S_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010631 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10632 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010633 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("INTERNAL_FM_TX", SND_SOC_NOPM,
10636 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10640 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
10644 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
10648 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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("VOC_REC_UL", SND_SOC_NOPM,
10652 MSM_BACKEND_DAI_INCALL_RECORD_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("SLIM_6_TX", SND_SOC_NOPM,
10656 MSM_BACKEND_DAI_SLIMBUS_6_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("PRI_TDM_TX_0", SND_SOC_NOPM,
10660 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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("PRI_TDM_TX_1", SND_SOC_NOPM,
10664 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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("PRI_TDM_TX_2", SND_SOC_NOPM,
10668 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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("PRI_TDM_TX_3", SND_SOC_NOPM,
10672 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
10676 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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("SEC_TDM_TX_1", SND_SOC_NOPM,
10680 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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("SEC_TDM_TX_2", SND_SOC_NOPM,
10684 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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("SEC_TDM_TX_3", SND_SOC_NOPM,
10688 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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("TERT_TDM_TX_1", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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("TERT_TDM_TX_2", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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("TERT_TDM_TX_3", SND_SOC_NOPM,
10704 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
10708 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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("QUAT_TDM_TX_1", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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("QUAT_TDM_TX_2", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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("QUAT_TDM_TX_3", SND_SOC_NOPM,
10720 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
10724 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_1", SND_SOC_NOPM,
10728 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_2", SND_SOC_NOPM,
10732 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_3", SND_SOC_NOPM,
10736 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +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("SLIM_7_TX", SND_SOC_NOPM,
10740 MSM_BACKEND_DAI_SLIMBUS_7_TX,
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("USB_AUDIO_TX", SND_SOC_NOPM,
10744 MSM_BACKEND_DAI_USB_TX,
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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010747 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10748 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10749 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10750 msm_routing_put_audio_mixer),
10751 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10752 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10753 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10754 msm_routing_put_audio_mixer),
10755 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10756 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10757 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10758 msm_routing_put_audio_mixer),
10759 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10760 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10761 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10762 msm_routing_put_audio_mixer),
10763 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10764 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10765 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10766 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010767 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10768 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10769 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10770 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010771 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10772 MSM_BACKEND_DAI_TX_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("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10776 MSM_BACKEND_DAI_TX_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("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10780 MSM_BACKEND_DAI_TX_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("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10784 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10785 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10786 msm_routing_put_audio_mixer),
10787 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10788 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10789 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10790 msm_routing_put_audio_mixer),
10791 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10792 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10793 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10794 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010795 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10796 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10797 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10798 msm_routing_put_audio_mixer),
10799 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10800 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10801 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10802 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010803 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10804 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10805 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10806 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010807 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10808 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10809 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10810 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010811};
10812
Asish Bhattacharya34504582017-08-08 12:55:01 +053010813static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010814 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10815 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010816 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010818 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10819 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010820 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010822 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10823 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010824 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010826 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10827 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010828 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010830 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10831 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010832 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010834 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10835 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010836 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010838 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10839 MSM_BACKEND_DAI_QUATERNARY_MI2S_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010842 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10843 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010844 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10847 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
10851 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
10855 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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("VOC_REC_UL", SND_SOC_NOPM,
10859 MSM_BACKEND_DAI_INCALL_RECORD_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("SLIM_6_TX", SND_SOC_NOPM,
10863 MSM_BACKEND_DAI_SLIMBUS_6_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("PRI_TDM_TX_0", SND_SOC_NOPM,
10867 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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("PRI_TDM_TX_1", SND_SOC_NOPM,
10871 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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("PRI_TDM_TX_2", SND_SOC_NOPM,
10875 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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("PRI_TDM_TX_3", SND_SOC_NOPM,
10879 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
10883 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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("SEC_TDM_TX_1", SND_SOC_NOPM,
10887 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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("SEC_TDM_TX_2", SND_SOC_NOPM,
10891 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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("SEC_TDM_TX_3", SND_SOC_NOPM,
10895 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
10899 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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("TERT_TDM_TX_1", SND_SOC_NOPM,
10903 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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("TERT_TDM_TX_2", SND_SOC_NOPM,
10907 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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("TERT_TDM_TX_3", SND_SOC_NOPM,
10911 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
10915 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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("QUAT_TDM_TX_1", SND_SOC_NOPM,
10919 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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("QUAT_TDM_TX_2", SND_SOC_NOPM,
10923 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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("QUAT_TDM_TX_3", SND_SOC_NOPM,
10927 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("SLIM_7_TX", SND_SOC_NOPM,
10931 MSM_BACKEND_DAI_SLIMBUS_7_TX,
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("USB_AUDIO_TX", SND_SOC_NOPM,
10935 MSM_BACKEND_DAI_USB_TX,
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("MI2S_TX", SND_SOC_NOPM,
10939 MSM_BACKEND_DAI_MI2S_TX,
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("AUX_PCM_TX", SND_SOC_NOPM,
10943 MSM_BACKEND_DAI_AUXPCM_TX,
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("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10947 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
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_AUX_PCM_TX", SND_SOC_NOPM,
10951 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010954 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10955 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10956 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10957 msm_routing_put_audio_mixer),
10958 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10959 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10960 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10961 msm_routing_put_audio_mixer),
10962 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10963 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10964 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10965 msm_routing_put_audio_mixer),
10966 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10967 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10968 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10969 msm_routing_put_audio_mixer),
10970 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10971 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10972 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10973 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010974 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10975 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10976 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10977 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010978 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10979 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10980 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10981 msm_routing_get_audio_mixer,
10982 msm_routing_put_audio_mixer),
10983 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10984 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10985 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10986 msm_routing_get_audio_mixer,
10987 msm_routing_put_audio_mixer),
10988 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10989 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10990 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10991 msm_routing_get_audio_mixer,
10992 msm_routing_put_audio_mixer),
10993 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10994 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10995 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10996 msm_routing_get_audio_mixer,
10997 msm_routing_put_audio_mixer),
10998 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10999 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11000 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11001 msm_routing_get_audio_mixer,
11002 msm_routing_put_audio_mixer),
11003 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11004 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11005 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11006 msm_routing_get_audio_mixer,
11007 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011008 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11009 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11010 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11011 msm_routing_put_audio_mixer),
11012 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11013 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11014 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11015 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011016 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11017 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11018 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11019 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011020 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11021 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11022 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11023 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053011024};
11025
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011026static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011027 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11028 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011029 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011031 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011033 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011035 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11036 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011037 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011039 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11040 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011041 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011043 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11044 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011045 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011047 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11048 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011049 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011051 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11052 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011053 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011055 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11056 MSM_BACKEND_DAI_SLIMBUS_6_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011059 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11060 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011061 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("TERT_TDM_TX_1", SND_SOC_NOPM,
11064 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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("TERT_TDM_TX_2", SND_SOC_NOPM,
11068 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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("TERT_TDM_TX_3", SND_SOC_NOPM,
11072 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
11076 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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("QUAT_TDM_TX_1", SND_SOC_NOPM,
11080 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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("QUAT_TDM_TX_2", SND_SOC_NOPM,
11084 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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("QUAT_TDM_TX_3", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
11092 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_1", SND_SOC_NOPM,
11096 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_2", SND_SOC_NOPM,
11100 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_3", SND_SOC_NOPM,
11104 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011105 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11106 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011107 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11108 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11109 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11110 msm_routing_put_audio_mixer),
11111 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11112 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11113 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11114 msm_routing_put_audio_mixer),
11115 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11116 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11117 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11118 msm_routing_put_audio_mixer),
11119 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11120 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11121 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11122 msm_routing_put_audio_mixer),
11123 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11124 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11125 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11126 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011127 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11129 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11130 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011131 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11133 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11134 msm_routing_put_audio_mixer),
11135 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11136 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11137 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11138 msm_routing_put_audio_mixer),
11139 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11140 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11141 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11142 msm_routing_put_audio_mixer),
11143 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11144 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11145 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11146 msm_routing_put_audio_mixer),
11147 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11148 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11149 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11150 msm_routing_put_audio_mixer),
11151 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11153 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11154 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011155 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11156 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11157 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11158 msm_routing_put_audio_mixer),
11159 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11160 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11161 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11162 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011163 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11164 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11165 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11166 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011167};
11168
Laxminath Kasam38070be2017-08-17 18:21:59 +053011169static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011170 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11171 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011172 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011174 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11175 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011176 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011178 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11179 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011180 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011182 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11183 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011184 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011186 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11187 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011188 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011190 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11191 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011192 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011194 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11195 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011196 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011198 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11199 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011200 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011202 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11203 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011204 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011206 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11207 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011208 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("TERT_TDM_TX_1", SND_SOC_NOPM,
11211 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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("TERT_TDM_TX_2", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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("TERT_TDM_TX_3", SND_SOC_NOPM,
11219 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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("QUAT_TDM_TX_1", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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("QUAT_TDM_TX_2", SND_SOC_NOPM,
11231 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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("QUAT_TDM_TX_3", SND_SOC_NOPM,
11235 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("USB_AUDIO_TX", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011240 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("MI2S_TX", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011244 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("AUX_PCM_TX", SND_SOC_NOPM,
11247 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011248 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("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11251 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011252 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_AUX_PCM_TX", SND_SOC_NOPM,
11255 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011256 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_AUX_PCM_TX", SND_SOC_NOPM,
11259 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011260 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("TERT_MI2S_TX", SND_SOC_NOPM,
11263 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011264 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("INT2_MI2S_TX", SND_SOC_NOPM,
11267 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011268 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("INT3_MI2S_TX", SND_SOC_NOPM,
11271 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011272 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11273 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011274 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11275 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11276 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11277 msm_routing_put_audio_mixer),
11278 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11279 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11280 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11281 msm_routing_put_audio_mixer),
11282 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11283 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11284 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11285 msm_routing_put_audio_mixer),
11286 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11287 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11288 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11289 msm_routing_put_audio_mixer),
11290 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11291 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11292 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11293 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011294 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11295 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11296 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11297 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011298 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11299 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11300 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11301 msm_routing_get_audio_mixer,
11302 msm_routing_put_audio_mixer),
11303 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11304 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11305 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11306 msm_routing_get_audio_mixer,
11307 msm_routing_put_audio_mixer),
11308 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11309 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11310 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11311 msm_routing_get_audio_mixer,
11312 msm_routing_put_audio_mixer),
11313 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11314 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11315 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11316 msm_routing_get_audio_mixer,
11317 msm_routing_put_audio_mixer),
11318 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11319 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11320 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11321 msm_routing_get_audio_mixer,
11322 msm_routing_put_audio_mixer),
11323 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11324 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11325 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11326 msm_routing_get_audio_mixer,
11327 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011328 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11329 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11330 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11331 msm_routing_put_audio_mixer),
11332 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11333 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11334 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11335 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011336 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11337 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11338 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11339 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011340 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11341 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11342 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11343 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011344};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011345static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011346 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11347 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011348 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011350 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11351 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011352 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011354 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11355 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011356 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011358 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11359 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011360 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011362 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11363 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011364 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011366 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11367 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011368 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011370 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11371 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011372 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011374 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11375 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011376 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11377 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011378 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11379 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11380 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11381 msm_routing_put_audio_mixer),
11382 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11383 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11384 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11385 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011386 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11387 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11388 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11389 msm_routing_put_audio_mixer),
11390 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11391 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11392 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11393 msm_routing_put_audio_mixer),
11394 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11395 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11396 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11397 msm_routing_put_audio_mixer),
11398 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11399 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11400 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11401 msm_routing_put_audio_mixer),
11402 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11403 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11404 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11405 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011406 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11407 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11408 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11409 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011410 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11411 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11412 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11413 msm_routing_get_audio_mixer,
11414 msm_routing_put_audio_mixer),
11415 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11416 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11417 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11418 msm_routing_get_audio_mixer,
11419 msm_routing_put_audio_mixer),
11420 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11421 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11422 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11423 msm_routing_get_audio_mixer,
11424 msm_routing_put_audio_mixer),
11425 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11426 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11427 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11428 msm_routing_get_audio_mixer,
11429 msm_routing_put_audio_mixer),
11430 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11431 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11432 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11433 msm_routing_get_audio_mixer,
11434 msm_routing_put_audio_mixer),
11435 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11436 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11437 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11438 msm_routing_get_audio_mixer,
11439 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011440 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11441 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11442 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11443 msm_routing_put_audio_mixer),
11444 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11445 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11446 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11447 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011448 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11449 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11450 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11451 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011452};
11453
11454static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011455 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11456 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011457 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011459 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11460 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011461 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011463 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11464 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011465 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11466 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011467 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11468 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11469 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11470 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011471 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11472 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11473 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011475 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11476 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011477 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011479 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11480 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011481 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011483 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11484 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011485 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011487 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11488 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011489 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011491 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11492 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011493 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011495 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11496 MSM_BACKEND_DAI_INCALL_RECORD_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011499 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11500 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11501 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11502 msm_routing_put_audio_mixer),
11503 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11504 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11505 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11506 msm_routing_put_audio_mixer),
11507 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11508 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11509 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11510 msm_routing_put_audio_mixer),
11511 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11512 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11513 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11514 msm_routing_put_audio_mixer),
11515 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11516 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11517 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11518 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011519 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11520 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11521 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11522 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011523 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11524 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11525 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11526 msm_routing_get_audio_mixer,
11527 msm_routing_put_audio_mixer),
11528 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11529 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11530 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11531 msm_routing_get_audio_mixer,
11532 msm_routing_put_audio_mixer),
11533 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11534 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11535 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11536 msm_routing_get_audio_mixer,
11537 msm_routing_put_audio_mixer),
11538 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11539 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11540 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11541 msm_routing_get_audio_mixer,
11542 msm_routing_put_audio_mixer),
11543 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11544 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11545 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11546 msm_routing_get_audio_mixer,
11547 msm_routing_put_audio_mixer),
11548 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11549 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11550 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11551 msm_routing_get_audio_mixer,
11552 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011553 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11554 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11555 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11556 msm_routing_put_audio_mixer),
11557 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11558 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11559 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11560 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011561 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11562 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11563 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11564 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011565};
11566
11567static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011568 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11569 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011570 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011572 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11573 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011574 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011576 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11577 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011578 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011580 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11581 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011582 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011584 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11585 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011586 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011588 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11589 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011590 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011592 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11593 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011594 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011596 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11597 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011598 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11599 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011600 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11601 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11602 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11603 msm_routing_put_audio_mixer),
11604 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11605 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11606 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11607 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011608 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11609 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11610 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11611 msm_routing_put_audio_mixer),
11612 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11613 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11614 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11615 msm_routing_put_audio_mixer),
11616 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11617 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11618 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11619 msm_routing_put_audio_mixer),
11620 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11621 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11622 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11623 msm_routing_put_audio_mixer),
11624 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11625 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11626 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11627 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011628 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11629 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11630 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11631 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011632 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11633 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11634 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11635 msm_routing_get_audio_mixer,
11636 msm_routing_put_audio_mixer),
11637 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11638 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11639 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11640 msm_routing_get_audio_mixer,
11641 msm_routing_put_audio_mixer),
11642 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11644 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11645 msm_routing_get_audio_mixer,
11646 msm_routing_put_audio_mixer),
11647 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11648 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11649 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11650 msm_routing_get_audio_mixer,
11651 msm_routing_put_audio_mixer),
11652 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11653 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11654 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11655 msm_routing_get_audio_mixer,
11656 msm_routing_put_audio_mixer),
11657 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11658 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11659 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11660 msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011662 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11664 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
11666 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11668 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011670 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11672 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011674};
11675
11676static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011677 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11678 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011679 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011681 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11682 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011683 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011685 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11686 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011687 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011689 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11690 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011691 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011693 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11694 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011695 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011697 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11698 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011699 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011701 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11702 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011703 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011705 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11706 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011707 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011709 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11710 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011711 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011713 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11714 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011715 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011717 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11718 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011719 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011721 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11722 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011723 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011725 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11726 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011727 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011729 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11730 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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("TERT_TDM_TX_1", SND_SOC_NOPM,
11734 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_TDM_TX_2", SND_SOC_NOPM,
11738 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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("TERT_TDM_TX_3", SND_SOC_NOPM,
11742 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
11746 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("QUAT_TDM_TX_1", SND_SOC_NOPM,
11750 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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("QUAT_TDM_TX_2", SND_SOC_NOPM,
11754 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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("QUAT_TDM_TX_3", SND_SOC_NOPM,
11758 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
11762 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_1", SND_SOC_NOPM,
11766 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_2", SND_SOC_NOPM,
11770 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_3", SND_SOC_NOPM,
11774 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011775 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11776 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011777 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11778 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11779 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11780 msm_routing_put_audio_mixer),
11781 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11782 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11783 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11784 msm_routing_put_audio_mixer),
11785 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11786 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11787 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11788 msm_routing_put_audio_mixer),
11789 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11790 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11791 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11792 msm_routing_put_audio_mixer),
11793 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11794 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11795 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11796 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011797 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11798 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11799 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11800 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011801 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11802 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11803 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11804 msm_routing_put_audio_mixer),
11805 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11806 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11807 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11808 msm_routing_put_audio_mixer),
11809 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11810 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11811 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11812 msm_routing_put_audio_mixer),
11813 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11814 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11815 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11816 msm_routing_put_audio_mixer),
11817 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11818 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11819 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11820 msm_routing_put_audio_mixer),
11821 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11822 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11823 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11824 msm_routing_put_audio_mixer),
11825 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11826 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11827 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11828 msm_routing_put_audio_mixer),
11829 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11830 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11831 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11832 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011833 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11834 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11835 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11836 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011837};
11838
11839static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11840 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11841 MSM_BACKEND_DAI_AUXPCM_TX,
11842 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11843 msm_routing_put_audio_mixer),
11844 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11845 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11846 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11847 msm_routing_put_audio_mixer),
11848 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11849 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11850 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11851 msm_routing_put_audio_mixer),
11852 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11853 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11854 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11855 msm_routing_put_audio_mixer),
11856 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11857 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11858 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11859 msm_routing_put_audio_mixer),
11860 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11861 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11862 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11863 msm_routing_put_audio_mixer),
11864 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11865 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11866 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11867 msm_routing_put_audio_mixer),
11868 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11869 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11870 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11871 msm_routing_put_audio_mixer),
11872 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11873 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11874 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11875 msm_routing_put_audio_mixer),
11876 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11877 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11878 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11879 msm_routing_put_audio_mixer),
11880 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11881 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11882 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11883 msm_routing_put_audio_mixer),
11884 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11885 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11886 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11887 msm_routing_put_audio_mixer),
11888 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11889 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11890 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11891 msm_routing_put_audio_mixer),
11892 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11894 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11895 msm_routing_put_audio_mixer),
11896 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11898 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11899 msm_routing_put_audio_mixer),
11900 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11901 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11902 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11903 msm_routing_put_audio_mixer),
11904 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11905 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11906 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11907 msm_routing_put_audio_mixer),
11908 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11909 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11910 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11911 msm_routing_put_audio_mixer),
11912 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11913 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11914 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11915 msm_routing_put_audio_mixer),
11916 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11917 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11918 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11919 msm_routing_put_audio_mixer),
11920 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11921 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11922 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11923 msm_routing_put_audio_mixer),
11924 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11926 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11927 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011928 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011929 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11930 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011931 msm_routing_put_audio_mixer),
11932 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011933 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11934 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011935 msm_routing_put_audio_mixer),
11936 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011937 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11938 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011939 msm_routing_put_audio_mixer),
11940 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011941 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11942 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011943 msm_routing_put_audio_mixer),
11944 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011945 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11946 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011947 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011948 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11949 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11950 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11951 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011952 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011953 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11954 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011956 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011957 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11958 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11959 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011960 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011961 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11962 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11963 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011964 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011965 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11966 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11967 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011968 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011969 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11970 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11971 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011972 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011973 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11974 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11975 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011976 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11977 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011978 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011979 msm_routing_put_audio_mixer),
11980 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11981 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011982 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011983 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011984 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11985 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11986 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11987 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011988};
11989
Surendar Karkac1cde372018-08-14 18:56:24 +053011990static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
11991 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11992 MSM_BACKEND_DAI_SLIMBUS_0_TX,
11993 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11994 msm_routing_put_audio_mixer),
11995 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11996 MSM_BACKEND_DAI_SLIMBUS_6_TX,
11997 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11998 msm_routing_put_audio_mixer),
11999 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_SLIMBUS_7_TX,
12001 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12002 msm_routing_put_audio_mixer),
12003 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12004 MSM_BACKEND_DAI_PRI_MI2S_TX,
12005 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12006 msm_routing_put_audio_mixer),
12007 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12008 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12009 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12010 msm_routing_put_audio_mixer),
12011 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12012 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12013 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12014 msm_routing_put_audio_mixer),
12015 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12016 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12017 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12018 msm_routing_put_audio_mixer),
12019 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12020 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
12021 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12022 msm_routing_put_audio_mixer),
12023 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12024 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12025 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12026 msm_routing_put_audio_mixer),
12027 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12028 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12029 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12030 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012031 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12032 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12033 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12034 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012035 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12036 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12037 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12038 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012039};
12040
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012041static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012042 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12043 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012044 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012046 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12047 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012048 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012050 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12051 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012052 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012054 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12055 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012056 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012058 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12059 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012060 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012062 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12063 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012064 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012066 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12067 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012068 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012070 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12071 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012072 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12073 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012074 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12075 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12076 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12077 msm_routing_put_audio_mixer),
12078 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12079 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12080 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12081 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012082 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12083 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12084 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12085 msm_routing_put_audio_mixer),
12086 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12087 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12088 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12089 msm_routing_put_audio_mixer),
12090 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12091 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12092 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12093 msm_routing_put_audio_mixer),
12094 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12095 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12096 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12097 msm_routing_put_audio_mixer),
12098 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12099 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12100 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12101 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012102 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12103 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12104 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12105 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012106 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12107 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12108 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12109 msm_routing_get_audio_mixer,
12110 msm_routing_put_audio_mixer),
12111 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12112 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12113 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12114 msm_routing_get_audio_mixer,
12115 msm_routing_put_audio_mixer),
12116 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12117 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12118 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12119 msm_routing_get_audio_mixer,
12120 msm_routing_put_audio_mixer),
12121 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12122 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12123 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12124 msm_routing_get_audio_mixer,
12125 msm_routing_put_audio_mixer),
12126 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12127 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12128 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12129 msm_routing_get_audio_mixer,
12130 msm_routing_put_audio_mixer),
12131 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12132 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12133 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12134 msm_routing_get_audio_mixer,
12135 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012136 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12137 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12138 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12139 msm_routing_put_audio_mixer),
12140 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12141 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12142 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12143 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012144 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12145 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12146 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12147 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012148};
12149
12150static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012151 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12152 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012153 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012155 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12156 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012157 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012159 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12160 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012161 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012163 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12164 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012165 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012167 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12168 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012169 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012171 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12172 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012173 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012175 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12176 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012177 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012179 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12180 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012181 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12182 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012183 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12184 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12185 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12186 msm_routing_put_audio_mixer),
12187 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12188 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12189 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12190 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012191 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12192 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12193 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12194 msm_routing_put_audio_mixer),
12195 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12196 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12197 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12198 msm_routing_put_audio_mixer),
12199 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12200 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12201 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12202 msm_routing_put_audio_mixer),
12203 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12204 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12205 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12206 msm_routing_put_audio_mixer),
12207 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12208 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12209 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12210 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012211 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12212 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12213 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12214 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012215 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12216 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12217 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12218 msm_routing_get_audio_mixer,
12219 msm_routing_put_audio_mixer),
12220 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12221 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12222 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12223 msm_routing_get_audio_mixer,
12224 msm_routing_put_audio_mixer),
12225 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12226 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12227 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12228 msm_routing_get_audio_mixer,
12229 msm_routing_put_audio_mixer),
12230 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12231 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12232 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12233 msm_routing_get_audio_mixer,
12234 msm_routing_put_audio_mixer),
12235 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12236 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12237 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12238 msm_routing_get_audio_mixer,
12239 msm_routing_put_audio_mixer),
12240 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12241 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12242 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12243 msm_routing_get_audio_mixer,
12244 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012245 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12246 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12247 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12248 msm_routing_put_audio_mixer),
12249 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12250 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12251 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12252 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012253 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12254 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12255 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12256 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012257};
12258
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012259static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012260 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12261 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012262 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12263 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012264 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12265 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012266 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12267 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012268 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12269 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012270 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12271 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012272 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12273 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012274 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12275 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012276 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12277 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012278 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12279 msm_routing_put_voice_mixer),
12280};
12281
12282static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012283 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12284 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012285 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12286 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012287 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12288 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012289 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12290 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012291 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12292 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012293 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12294 msm_routing_put_voice_mixer),
12295};
12296
12297static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012298 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12299 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012300 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12301 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012302 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12303 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012304 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12305 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012306 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12307 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012308 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12309 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012310 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12311 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012312 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12313 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012314 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12315 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012316 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12317 msm_routing_put_voice_mixer),
12318};
12319
12320static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012321 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12322 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012323 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12324 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012325 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12326 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012327 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12328 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012329 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12330 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012331 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12332 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012333 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12334 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012335 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12336 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012337 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12338 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012339 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12340 msm_routing_put_voice_mixer),
12341};
12342
12343static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012344 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12345MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012346 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12347 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012348 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12349MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012350 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12351 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012352 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12353MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012354 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12355 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012356 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12357MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012358 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12359 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012360 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12361MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012362 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12363 msm_routing_put_voice_mixer),
12364};
12365
12366static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012367 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12368 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012369 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12370 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012371 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12372 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012373 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12374 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012375 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12376 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012377 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12378 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012379 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12380 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012381 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12382 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012383 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12384 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012385 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12386 msm_routing_put_voice_mixer),
12387};
12388
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012389static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012390 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12391MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012392 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12393 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012394 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12395MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012396 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12397 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012398 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12399MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012400 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12401 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012402 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12403MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012404 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12405 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012406 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12407MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012408 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12409 msm_routing_put_voice_mixer),
12410};
12411
Karthikeyan Mani57550082018-05-03 18:43:58 -070012412static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12413 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12414 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12415 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12416 msm_routing_put_voice_mixer),
12417 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12418 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12419 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12420 msm_routing_put_voice_mixer),
12421 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12422 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12423 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12424 msm_routing_put_voice_mixer),
12425 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12426 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12427 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12428 msm_routing_put_voice_mixer),
12429 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12430 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12431 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12432 msm_routing_put_voice_mixer),
12433};
12434
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012435static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012436 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12437 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012438 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12439 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012440 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12441 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012442 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12443 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012444 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12445 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012446 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12447 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012448 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12449 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012450 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12451 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012452 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12453 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012454 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12455 msm_routing_put_voice_mixer),
12456};
12457
12458static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012459 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12460 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012461 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12462 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012463 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12464 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012465 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12466 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012467 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12468 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012469 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12470 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012471 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12472 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012473 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12474 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012475 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12476 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012477 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12478 msm_routing_put_voice_mixer),
12479};
12480
12481static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012482 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12483MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012484 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12485 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012486 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12487MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012488 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12489 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012490 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12491MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012492 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12493 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012494 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12495MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012496 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12497 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012498 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12499MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012500 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12501 msm_routing_put_voice_mixer),
12502};
12503
12504static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012505 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12506MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012507 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12508 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012509 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12510MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012511 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12512 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012513 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12514MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012515 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12516 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012517 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12518MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012519 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12520 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012521 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12522MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012523 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12524 msm_routing_put_voice_mixer),
12525};
12526
12527static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012528 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12529 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012530 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12531 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012532 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12533 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012534 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12535 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012536 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12537 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012538 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12539 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012540 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12541 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012542 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12543 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012544 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12545 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012546 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12547 msm_routing_put_voice_mixer),
12548};
12549
12550static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012551 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12552 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012553 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12554 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012555 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12556 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012557 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12558 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012559 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12560 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012561 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12562 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012563 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12564 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012565 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12566 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012567 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12568 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012569 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12570 msm_routing_put_voice_mixer),
12571};
12572
12573static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012574 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12575 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012576 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12577 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012578 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12579 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012580 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12581 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012582 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12583 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012584 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12585 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012586 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12587 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012588 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12589 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012590 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12591 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012592 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12593 msm_routing_put_voice_mixer),
12594};
12595
12596static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012597 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12598 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012599 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12600 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012601 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12602 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012603 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12604 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012605 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12606 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012607 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12608 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012609 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12610 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012611 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12612 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012613 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12614 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012615 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12616 msm_routing_put_voice_mixer),
12617};
12618
12619static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012620 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12621 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012622 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12623 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012624 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12625 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012626 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12627 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012628 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12629 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012630 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12631 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012632 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12633 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012634 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12635 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012636 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12637 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012638 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12639 msm_routing_put_voice_mixer),
12640};
12641
12642static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012643 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12644 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012645 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12646 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012647 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12648 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012649 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12650 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012651 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12652 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012653 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12654 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012655 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12656 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012657 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12658 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012659 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12660 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012661 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12662 msm_routing_put_voice_mixer),
12663};
12664
12665static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012666 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12667MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012668 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12669 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012670 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12671MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012672 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12673 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012674 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12675MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012676 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12677 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012678 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12679MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012680 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12681 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012682 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12683MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012684 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12685 msm_routing_put_voice_mixer),
12686};
12687
12688static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012689 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12690MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012691 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12692 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012693 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12694MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012695 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12696 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012697 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12698MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012699 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12700 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012701 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12702MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012703 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12704 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012705 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12706MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012707 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12708 msm_routing_put_voice_mixer),
12709};
12710
12711static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012712 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12713MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012714 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12715 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012716 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12717MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012718 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12719 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012720 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12721MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012722 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12723 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012724 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12725MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012726 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12727 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012728 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12729MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012730 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12731 msm_routing_put_voice_mixer),
12732};
12733
Rohit Kumara5077932017-09-10 22:05:05 +053012734static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012735 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12736MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012737 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12738 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012739 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12740MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012741 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12742 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012743 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12744MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012745 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12746 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012747 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12748MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012749 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12750 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012751 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12752MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012753 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12754 msm_routing_put_voice_mixer),
12755};
12756
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012757static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012758 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12759 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012760 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12761 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012762 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12763 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012764 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12765 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012766 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12767 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012768 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12769 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012770 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12771 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012772 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12773 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012774 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12775 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012776 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12777 msm_routing_put_voice_mixer),
12778};
12779
12780static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012781 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12782MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012783 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12784 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012785 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12786MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012787 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12788 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012789 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12790MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012791 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12792 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012793 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12794MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012795 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12796 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012797 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12798MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012799 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12800 msm_routing_put_voice_mixer),
12801};
12802
12803static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012804 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12805 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012806 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12807 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012808 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12809 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012810 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12811 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012812 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12813 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012814 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12815 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012816 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12817 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012818 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12819 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012820 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12821 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012822 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12823 msm_routing_put_voice_mixer),
12824};
12825
12826static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012827 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12828 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012829 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12830 msm_routing_put_voice_mixer),
12831};
12832
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012833static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12834 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12835 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12836 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12837 msm_routing_put_voice_mixer),
12838 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12839 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12840 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12841 msm_routing_put_voice_mixer),
12842 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12843 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12844 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12845 msm_routing_put_voice_mixer),
12846 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12847 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12848 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12849 msm_routing_put_voice_mixer),
12850 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12851 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12852 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12853 msm_routing_put_voice_mixer),
12854};
12855
12856static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12857 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12858 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12859 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12860 msm_routing_put_voice_mixer),
12861 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12862 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12863 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12864 msm_routing_put_voice_mixer),
12865 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12866 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12867 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12868 msm_routing_put_voice_mixer),
12869 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12870 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12871 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12872 msm_routing_put_voice_mixer),
12873 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12874 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12875 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12876 msm_routing_put_voice_mixer),
12877};
12878
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012879static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12880 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12881 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12882 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12883 msm_routing_put_voice_mixer),
12884 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12885 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12886 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12887 msm_routing_put_voice_mixer),
12888 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12889 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12890 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12891 msm_routing_put_voice_mixer),
12892 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12893 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12894 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12895 msm_routing_put_voice_mixer),
12896 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12897 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12898 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12899 msm_routing_put_voice_mixer),
12900};
12901
12902static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12903 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12904 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12905 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12906 msm_routing_put_voice_mixer),
12907 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12908 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12909 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12910 msm_routing_put_voice_mixer),
12911 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12912 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12913 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12914 msm_routing_put_voice_mixer),
12915 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12916 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12917 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12918 msm_routing_put_voice_mixer),
12919 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12920 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12921 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12922 msm_routing_put_voice_mixer),
12923};
12924
12925static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12926 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12927 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12928 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12929 msm_routing_put_voice_mixer),
12930 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12931 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12932 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12933 msm_routing_put_voice_mixer),
12934 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12935 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12936 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12937 msm_routing_put_voice_mixer),
12938 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12939 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12940 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12941 msm_routing_put_voice_mixer),
12942 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12943 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12944 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12945 msm_routing_put_voice_mixer),
12946};
12947
12948static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12949 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12950 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12951 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12952 msm_routing_put_voice_mixer),
12953 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12954 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12955 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12956 msm_routing_put_voice_mixer),
12957 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12958 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12959 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12960 msm_routing_put_voice_mixer),
12961 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12962 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12963 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12964 msm_routing_put_voice_mixer),
12965 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12966 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12967 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12968 msm_routing_put_voice_mixer),
12969};
12970
12971static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12972 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12973 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12974 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12975 msm_routing_put_voice_mixer),
12976 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12978 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12979 msm_routing_put_voice_mixer),
12980 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12981 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12982 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12983 msm_routing_put_voice_mixer),
12984 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12985 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12986 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12987 msm_routing_put_voice_mixer),
12988 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12989 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12990 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12991 msm_routing_put_voice_mixer),
12992};
12993
12994static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12995 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12996 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12997 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12998 msm_routing_put_voice_mixer),
12999 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13000 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13001 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13002 msm_routing_put_voice_mixer),
13003 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13004 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13005 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13006 msm_routing_put_voice_mixer),
13007 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13008 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13009 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13010 msm_routing_put_voice_mixer),
13011 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13012 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13013 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13014 msm_routing_put_voice_mixer),
13015};
13016
13017static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
13018 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13019 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13020 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13021 msm_routing_put_voice_mixer),
13022 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13023 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13024 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13025 msm_routing_put_voice_mixer),
13026 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13027 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13028 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13029 msm_routing_put_voice_mixer),
13030 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13031 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13032 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13033 msm_routing_put_voice_mixer),
13034 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13035 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13036 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13037 msm_routing_put_voice_mixer),
13038};
13039
13040static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
13041 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13042 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13043 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13044 msm_routing_put_voice_mixer),
13045 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13046 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13047 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13048 msm_routing_put_voice_mixer),
13049 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13050 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13051 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13052 msm_routing_put_voice_mixer),
13053 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13054 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13055 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13056 msm_routing_put_voice_mixer),
13057 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13058 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13059 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13060 msm_routing_put_voice_mixer),
13061};
13062
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013063static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013064 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13065 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013066 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13067 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013068 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13069 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013070 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13071 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013072};
13073
13074static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013075 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13076 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013077 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13078 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013079 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013081 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13082 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013083};
13084
13085static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013086 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13087 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013088 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13089 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013090 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13091 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013092 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13093 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013094};
13095
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013096static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013097 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
13098 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013099 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13100 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013101 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
13102 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013103 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13104 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013105 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013106 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13107 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013108 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013109 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13110 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013111 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013112 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13113 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013114 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013115 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13116 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013117 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013118 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13119 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013120 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013121 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13122 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013123 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013124 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13125 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013126 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013127 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13128 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013129 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013130 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13131 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013132 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013133 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13134 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013135 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013136 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13137 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013138 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013139 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13140 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013141 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013142 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13143 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013144 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
13145 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013146 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13147 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013148 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
13149MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013150 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013151 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13152 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13153 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13154 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13155 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13156 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013157 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13158 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13159 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013160 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13161 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13162 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13163 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13164 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13165 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13166 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13167 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13168 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13169 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
13170 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13171 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13172 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13173 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13174 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13175 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13176 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13177 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013178};
13179
13180static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013181 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13182 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013183 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13184 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013185 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13186 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013187 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13188 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013189 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013190 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13191 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013192 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013193 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13194 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013195 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013196 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13197 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013198 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013199 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13200 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013201 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013202 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13203 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013204 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013205 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13206 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013207 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013208 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13209 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013210 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013211 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13212 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013213 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013214 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13215 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013216 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013217 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13218 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013219 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013220 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13221 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013222 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013223 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13224 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013225 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013226 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13227 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013228 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013229 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13230 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013231 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13232 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13233 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13234 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13235 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13236 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013237 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13238 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13239 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013240 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13241 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13242 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13243 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13244 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13245 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13246 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13247 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13248 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13249 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13250 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13251 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13252 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13253 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13254 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13255 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13256 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13257 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013258};
13259
13260static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013261 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13262 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013263 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13264 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013265 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013267 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13268 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013269 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13270 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013271 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13272 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013273 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13274 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013275 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13276 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013277 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13278 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013279 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13280 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013281 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13282 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013283 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13284 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013285 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13286 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013287 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13288 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013289 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13290 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013291 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13292 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013293 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13294 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013295 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13296 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013297 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13298 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013299 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13300 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013301 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13302 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013303 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13304 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013305 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13306 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013307 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13308 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013309 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13310 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013311 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13312 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013313 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13314 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013315 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13316 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013317 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13318 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013319 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13320 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013321 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13322 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013323 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13324 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013325 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13326 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13327 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13328 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13329 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13330 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013331 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13332 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13333 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013334 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13335 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13336 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13337 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13338 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13339 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13340 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13341 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13342 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13343 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13344 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13345 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13346 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13347 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13348 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13349 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13350 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13351 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013352};
13353
13354static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013355 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13356 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013357 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13358 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013359 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13360 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013361 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13362 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013363 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13364 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013365 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13366 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013367 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13368 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013369 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13370 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013371 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13372 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013373 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13374 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013375 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13376 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013377 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13378 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013379 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13380 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013381 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13382 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013383 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13384 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013385 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13386 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013387 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13388 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013389 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13390 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013391 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13392 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013393 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13394 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013395 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13396 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013397 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13398 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013399 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13400 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013401 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13402 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013403 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13404 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013405 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13406 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013407 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13408 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013409 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13410 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013411 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13412 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013413 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13414 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013415 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13416 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013417 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13418 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013419 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13420 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013421 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13422 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013423 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13424 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013425 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13426 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013427 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13428 MSM_BACKEND_DAI_SLIMBUS_8_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013431 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13432 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13433 1, 0, msm_routing_get_voice_stub_mixer,
13434 msm_routing_put_voice_stub_mixer),
13435 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13436 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13437 1, 0, msm_routing_get_voice_stub_mixer,
13438 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013439 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13440 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13441 1, 0, msm_routing_get_voice_stub_mixer,
13442 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013443 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13444 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13445 1, 0, msm_routing_get_voice_stub_mixer,
13446 msm_routing_put_voice_stub_mixer),
13447 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13448 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13449 1, 0, msm_routing_get_voice_stub_mixer,
13450 msm_routing_put_voice_stub_mixer),
13451 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13452 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13453 1, 0, msm_routing_get_voice_stub_mixer,
13454 msm_routing_put_voice_stub_mixer),
13455 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13456 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13457 1, 0, msm_routing_get_voice_stub_mixer,
13458 msm_routing_put_voice_stub_mixer),
13459 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13460 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13461 1, 0, msm_routing_get_voice_stub_mixer,
13462 msm_routing_put_voice_stub_mixer),
13463 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13464 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13465 1, 0, msm_routing_get_voice_stub_mixer,
13466 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013467};
13468
13469static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013470 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13471 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013472 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13473 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013474 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13475 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013476 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13477 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013478 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13479 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013480 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13481 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013482 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13483 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013484 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13485 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013486 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13487 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013488 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13489 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013490 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13491 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013492 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13493 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013494 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13495 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013496 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13497 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013498 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13499 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013500 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13501 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013502 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13503 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013504 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13505 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013506 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13507 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013508 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13509 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013510 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13511 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013512 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13513 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013514 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13515 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013516 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13517 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013518 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13519 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013520 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13521 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013522 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13523 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013524 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13525 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013526 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13527 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013528 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13529 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013530 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13531 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13532 1, 0, msm_routing_get_voice_stub_mixer,
13533 msm_routing_put_voice_stub_mixer),
13534 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13535 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13536 1, 0, msm_routing_get_voice_stub_mixer,
13537 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013538 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13539 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13540 1, 0, msm_routing_get_voice_stub_mixer,
13541 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013542 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13543 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13544 1, 0, msm_routing_get_voice_stub_mixer,
13545 msm_routing_put_voice_stub_mixer),
13546 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13547 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13548 1, 0, msm_routing_get_voice_stub_mixer,
13549 msm_routing_put_voice_stub_mixer),
13550 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13551 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13552 1, 0, msm_routing_get_voice_stub_mixer,
13553 msm_routing_put_voice_stub_mixer),
13554 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13555 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13556 1, 0, msm_routing_get_voice_stub_mixer,
13557 msm_routing_put_voice_stub_mixer),
13558 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13559 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13560 1, 0, msm_routing_get_voice_stub_mixer,
13561 msm_routing_put_voice_stub_mixer),
13562 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13563 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13564 1, 0, msm_routing_get_voice_stub_mixer,
13565 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013566};
13567
13568static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013569 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13570 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013571 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13572 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013573 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13574 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013575 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13576 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013577 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13578 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013579 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13580 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013581 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13582 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013583 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13584 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013585 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013587 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13588 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013589 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013591 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13592 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013593 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13594 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013595 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13596 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013597 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13598 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013599 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13600 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013601 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13602 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013603 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13604 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013605 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13606 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013607 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13608 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013609 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13610 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013611 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13612 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013613 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13614 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013615 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13616 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013617 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13618 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013619 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13620 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013621 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13622 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013623 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13624 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013625 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13626 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013627 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13628 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013629 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13631 1, 0, msm_routing_get_voice_stub_mixer,
13632 msm_routing_put_voice_stub_mixer),
13633 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13634 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13635 1, 0, msm_routing_get_voice_stub_mixer,
13636 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013637 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13638 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13639 1, 0, msm_routing_get_voice_stub_mixer,
13640 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013641 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13642 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13643 1, 0, msm_routing_get_voice_stub_mixer,
13644 msm_routing_put_voice_stub_mixer),
13645 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13647 1, 0, msm_routing_get_voice_stub_mixer,
13648 msm_routing_put_voice_stub_mixer),
13649 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13650 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13651 1, 0, msm_routing_get_voice_stub_mixer,
13652 msm_routing_put_voice_stub_mixer),
13653 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13654 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13655 1, 0, msm_routing_get_voice_stub_mixer,
13656 msm_routing_put_voice_stub_mixer),
13657 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13658 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13659 1, 0, msm_routing_get_voice_stub_mixer,
13660 msm_routing_put_voice_stub_mixer),
13661 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13662 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13663 1, 0, msm_routing_get_voice_stub_mixer,
13664 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013665};
13666
13667static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013668 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13669 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013670 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13671 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013672 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13673 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013674 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13675 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013676 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13677 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13678 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013679 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013680 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13681 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013682 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13683 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013684 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13685 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013686 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13687 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013688 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13689 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013690 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13691 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013692 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13693 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013694 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13695 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013696 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13697 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013698 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13699 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013700 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13701 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013702 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13703 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013704 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13705 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013706 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13707 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013708 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13709 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013710 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13711 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013712 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13713 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013714 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13715 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013716 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13717 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013718 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13719 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013720 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13721 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013722 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13723 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013724 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13725 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013726 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13727 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013728 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13729 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013730 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13731 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013732 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13733 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13734 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13735 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13736 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13737 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013738 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13739 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13740 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013741 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13742 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13743 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13744 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13745 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13746 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13747 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13748 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13749 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13750 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13751 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13752 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13753 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13754 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13755 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13756 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13757 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13758 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013759};
13760
13761static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013762 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13763 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013764 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013766 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13767 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013768 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013770 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13771 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013772 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013774 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13775 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013776 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013778 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13779 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013780 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13781 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013782 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13783 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013784 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013786 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13787 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013788 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013790 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13791 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013792 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013794 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13795 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013796 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13797 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013798 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13799 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013800 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13801 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013802 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13803 MSM_BACKEND_DAI_INT0_MI2S_RX,
13804 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13805 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013806};
13807
13808static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013809 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13810 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013811 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13812 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013813 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13814 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013815 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13816 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013817 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13818 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013819 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013821 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13822 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013823 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013825 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13826 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013827 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013829 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13830 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013831 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013833 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13834 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013835 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013837 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13838 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013839 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013841 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13842 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013843 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13844 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013845 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13846 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013847 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13848 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013849 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13850 MSM_BACKEND_DAI_INT4_MI2S_RX,
13851 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13852 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013853};
13854
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013855static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13856 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13857 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13858 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13859 msm_routing_put_port_mixer),
13860 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13861 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13862 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13863 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013864 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13865 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13866 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13867 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080013868 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13869 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13870 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13871 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013872};
13873
13874static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13875 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13876 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13877 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13878 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013879 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13880 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13881 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13882 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013883 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080013884 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053013885 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13886 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080013887 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13888 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13889 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13890 msm_routing_put_port_mixer),
13891
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013892};
13893
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013894static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013895 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13896 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013897 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013899 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13900 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013901 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013903 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13904 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013905 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013907 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13908 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013909 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013911 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13912 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013913 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013915 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13916 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013917 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013919 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13920 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013921 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013923 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13924 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013925 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013927 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13928 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013929 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013931 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13932 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013933 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013935 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13936 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013937 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013939 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13940 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013941 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013943 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13944 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013945 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013947 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13948 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013949 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013951 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13952 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013953 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013955 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13956 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013957 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013959 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13960 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013961 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013963 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13964 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013965 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013967 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13968 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013969 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013971 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13972 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013973 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013975 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13976 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013977 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013979 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13980 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053013981 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13982 msm_routing_put_port_mixer),
13983 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13984 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13985 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013986 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013987};
13988
13989static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013990 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13991 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013992 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13993 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013994 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13995 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013996 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013998 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13999 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014000 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014002 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14003 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014004 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014006 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14007 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014008 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
14009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014010 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14011 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014012 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14013 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014014};
14015
14016static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014017 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14018 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014019 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014021 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14022 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014023 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014025 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14026 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014027 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014029 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14030 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014031 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14032 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014033};
14034
14035static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014036 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014038 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014040 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014042 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014044 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14045 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014046 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14047 msm_routing_put_port_mixer),
14048};
14049
14050static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014051 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14052 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014053 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014055 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14056 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014057 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014059 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14060 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014061 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14062 msm_routing_put_port_mixer),
14063};
14064
Rohit Kumara5077932017-09-10 22:05:05 +053014065static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014066 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14067 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014068 MSM_BACKEND_DAI_QUIN_AUXPCM_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_0_TX", SND_SOC_NOPM,
14071 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014072 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
14075 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014076 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14077 msm_routing_put_port_mixer),
14078};
14079
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014080static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014081 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14082 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014083 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014085 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14086 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014087 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
14088 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014089 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14090 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014091 MSM_BACKEND_DAI_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14094 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014095 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14098 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014099 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14102 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014103 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14104 msm_routing_put_port_mixer),
14105};
14106
14107static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014108 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
14109 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014110 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
14111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014112 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14113 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014114 MSM_BACKEND_DAI_MI2S_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("AFE_PCM_RX", SND_SOC_NOPM,
14117 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014118 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
14119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014120 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
14121 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014122 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
14123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014124 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
14125 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014126 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
14127 msm_routing_put_port_mixer),
14128};
14129
14130static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014131 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14132 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014133 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014135 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14136 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014137 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014139 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14140 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014141 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014143 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14144 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014145 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014147 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14148 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014149 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014151 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14152 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014153 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014155 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14156 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014157 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014159 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14160 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014161 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014163 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14164 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014165 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014167 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14168 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014169 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014171 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14172 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014173 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14174 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014175 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14176 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014177 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14178 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014179 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14180 MSM_BACKEND_DAI_SLIMBUS_6_RX,
14181 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14182 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014183};
14184
14185static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014186 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14187 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014188 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014190 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14191 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014192 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14193 msm_routing_put_port_mixer),
14194};
14195
14196static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014197 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14198 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014199 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014201 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14202 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014203 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14204 msm_routing_put_port_mixer),
14205};
14206
14207
14208static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014209 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14210 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014211 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14212 msm_routing_put_port_mixer),
14213};
14214
14215static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014216 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14217 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014218 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14219 msm_routing_put_port_mixer),
14220};
14221
Karthikeyan Mani57550082018-05-03 18:43:58 -070014222static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14223 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14224 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14225 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14226 msm_routing_put_port_mixer),
14227};
14228
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014229static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014230 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14231 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014232 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14233 msm_routing_put_port_mixer),
14234};
14235
14236static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014237 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14238 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014239 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014241 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14242 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014243 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14244 msm_routing_put_port_mixer),
14245};
14246
14247static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014248 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14249 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014250 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014252 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14253 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014254 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014256 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14257 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014258 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014260 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14261 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014262 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014264 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14265 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014266 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014268 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14269 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014270 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014272 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14273 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014274 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014276 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14277 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014278 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014280 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14281 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014282 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014284 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14285 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014286 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14287 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014288};
14289
14290static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014291 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14292 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014293 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14294 msm_routing_put_port_mixer),
14295};
14296
14297static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014298 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14299 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014300 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014302 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14303 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014304 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014306 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14307 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014308 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014310 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14311 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014312 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014314 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14315 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014316 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014318 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14319 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014320 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014322 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14323 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014324 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014326 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14327 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014328 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14329 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014330 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14331 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014332 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14333 msm_routing_put_port_mixer),
14334};
14335
Rohit Kumara5077932017-09-10 22:05:05 +053014336static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014337 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14338 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014339 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014341 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14342 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014343 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014345 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14346 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014347 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014349 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14350 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014351 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014353 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14354 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014355 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014357 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14358 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014359 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014361 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14362 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014363 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14364 msm_routing_put_port_mixer),
14365};
14366
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014367static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014368 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14369 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014370 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14371 msm_routing_get_port_mixer,
14372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014373 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14374 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014375 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14376 msm_routing_get_port_mixer,
14377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014378 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14379 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014380 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14381 msm_routing_get_port_mixer,
14382 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014383 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14384 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014385 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14386 msm_routing_get_port_mixer,
14387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014388 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14389 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014390 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14391 msm_routing_get_port_mixer,
14392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014393 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14394 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014395 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14396 msm_routing_get_port_mixer,
14397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014398 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14399 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014400 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14401 msm_routing_get_port_mixer,
14402 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014403 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14404 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014405 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14406 msm_routing_get_port_mixer,
14407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014408 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14409 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014410 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14411 msm_routing_get_port_mixer,
14412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014413 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14414 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014415 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14416 msm_routing_get_port_mixer,
14417 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014418 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14419 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014420 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14421 msm_routing_get_port_mixer,
14422 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014423 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14424 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014425 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14426 msm_routing_get_port_mixer,
14427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014428 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14429 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014430 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14431 msm_routing_get_port_mixer,
14432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014433 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14434 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014435 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14436 msm_routing_get_port_mixer,
14437 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014438 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14439 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014440 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14441 msm_routing_get_port_mixer,
14442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014443 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14444 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014445 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14446 msm_routing_get_port_mixer,
14447 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014448 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14449 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014450 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14451 msm_routing_get_port_mixer,
14452 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014453 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14454 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014455 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14456 msm_routing_get_port_mixer,
14457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014458 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14459 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014460 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14461 msm_routing_get_port_mixer,
14462 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014463 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14464 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014465 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14466 msm_routing_get_port_mixer,
14467 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014468};
14469
14470static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014471 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14472 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014473 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14474 msm_routing_get_port_mixer,
14475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014476 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14477 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014478 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14479 msm_routing_get_port_mixer,
14480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014481 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14482 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014483 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14484 msm_routing_get_port_mixer,
14485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014486 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14487 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014488 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14489 msm_routing_get_port_mixer,
14490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014491 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14492 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014493 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14494 msm_routing_get_port_mixer,
14495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014496 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14497 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014498 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14499 msm_routing_get_port_mixer,
14500 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014501 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14502 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014503 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14504 msm_routing_get_port_mixer,
14505 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014506 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14507 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014508 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14509 msm_routing_get_port_mixer,
14510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014511 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14512 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014513 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14514 msm_routing_get_port_mixer,
14515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014516 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14517 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014518 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14519 msm_routing_get_port_mixer,
14520 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014521 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14522 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014523 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14524 msm_routing_get_port_mixer,
14525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014526 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14527 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014528 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14529 msm_routing_get_port_mixer,
14530 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014531 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14532 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014533 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14534 msm_routing_get_port_mixer,
14535 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014536 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14537 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014538 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14539 msm_routing_get_port_mixer,
14540 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014541 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14542 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014543 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14544 msm_routing_get_port_mixer,
14545 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014546 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14547 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014548 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14549 msm_routing_get_port_mixer,
14550 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014551 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14552 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014553 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14554 msm_routing_get_port_mixer,
14555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014556 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14557 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014558 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14559 msm_routing_get_port_mixer,
14560 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014561 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14562 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014563 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14564 msm_routing_get_port_mixer,
14565 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014566 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14567 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014568 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14569 msm_routing_get_port_mixer,
14570 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014571};
14572
14573static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014574 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14575 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014576 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14577 msm_routing_get_port_mixer,
14578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014579 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14580 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014581 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14582 msm_routing_get_port_mixer,
14583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014584 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14585 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014586 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14587 msm_routing_get_port_mixer,
14588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014589 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14590 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014591 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14592 msm_routing_get_port_mixer,
14593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014594 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14595 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014596 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14597 msm_routing_get_port_mixer,
14598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014599 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14600 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014601 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14602 msm_routing_get_port_mixer,
14603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014604 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14605 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014606 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14607 msm_routing_get_port_mixer,
14608 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014609 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14610 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014611 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14612 msm_routing_get_port_mixer,
14613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014614 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14615 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014616 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14617 msm_routing_get_port_mixer,
14618 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014619 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14620 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014621 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14622 msm_routing_get_port_mixer,
14623 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014624 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14625 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014626 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14627 msm_routing_get_port_mixer,
14628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014629 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14630 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014631 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14632 msm_routing_get_port_mixer,
14633 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014634 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14635 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014636 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14637 msm_routing_get_port_mixer,
14638 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014639 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14640 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014641 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14642 msm_routing_get_port_mixer,
14643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014644 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14645 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014646 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14647 msm_routing_get_port_mixer,
14648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014649 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14650 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014651 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14652 msm_routing_get_port_mixer,
14653 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014654 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14655 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014656 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14657 msm_routing_get_port_mixer,
14658 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014659 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14660 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014661 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14662 msm_routing_get_port_mixer,
14663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014664 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14665 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014666 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14667 msm_routing_get_port_mixer,
14668 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014669 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14670 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014671 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14672 msm_routing_get_port_mixer,
14673 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014674};
14675
14676static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014677 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14678 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014679 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14680 msm_routing_get_port_mixer,
14681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014682 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14683 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014684 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14685 msm_routing_get_port_mixer,
14686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014687 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14688 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014689 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14690 msm_routing_get_port_mixer,
14691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014692 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14693 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014694 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14695 msm_routing_get_port_mixer,
14696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014697 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14698 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014699 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14700 msm_routing_get_port_mixer,
14701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014702 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14703 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014704 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14705 msm_routing_get_port_mixer,
14706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014707 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14708 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014709 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14710 msm_routing_get_port_mixer,
14711 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014712 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14713 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014714 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14715 msm_routing_get_port_mixer,
14716 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014717 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14718 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014719 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14720 msm_routing_get_port_mixer,
14721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014722 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14723 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014724 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14725 msm_routing_get_port_mixer,
14726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014727 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14728 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014729 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14730 msm_routing_get_port_mixer,
14731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014732 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14733 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014734 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14735 msm_routing_get_port_mixer,
14736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014737 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14738 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014739 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14740 msm_routing_get_port_mixer,
14741 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014742 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14743 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014744 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14745 msm_routing_get_port_mixer,
14746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014747 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14748 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014749 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14750 msm_routing_get_port_mixer,
14751 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014752 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14753 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014754 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14755 msm_routing_get_port_mixer,
14756 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014757 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14758 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014759 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14760 msm_routing_get_port_mixer,
14761 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014762 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14763 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014764 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14765 msm_routing_get_port_mixer,
14766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014767 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14768 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014769 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14770 msm_routing_get_port_mixer,
14771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014772 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14773 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014774 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14775 msm_routing_get_port_mixer,
14776 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014777};
14778
14779static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014780 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14781 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014782 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14783 msm_routing_get_port_mixer,
14784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014785 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14786 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014787 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14788 msm_routing_get_port_mixer,
14789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014790 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14791 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014792 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14793 msm_routing_get_port_mixer,
14794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014795 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14796 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014797 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14798 msm_routing_get_port_mixer,
14799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014800 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14801 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014802 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14803 msm_routing_get_port_mixer,
14804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014805 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14806 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014807 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14808 msm_routing_get_port_mixer,
14809 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014810 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14811 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014812 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14813 msm_routing_get_port_mixer,
14814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014815 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14816 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014817 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14818 msm_routing_get_port_mixer,
14819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014820 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14821 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014822 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14823 msm_routing_get_port_mixer,
14824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014825 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14826 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014827 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14828 msm_routing_get_port_mixer,
14829 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014830 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14831 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014832 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14833 msm_routing_get_port_mixer,
14834 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014835 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14836 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014837 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14838 msm_routing_get_port_mixer,
14839 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014840 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14841 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014842 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14843 msm_routing_get_port_mixer,
14844 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014845 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14846 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014847 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14848 msm_routing_get_port_mixer,
14849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014850 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14851 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014852 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14853 msm_routing_get_port_mixer,
14854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014855 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14856 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014857 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14858 msm_routing_get_port_mixer,
14859 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014860 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14861 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014862 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14863 msm_routing_get_port_mixer,
14864 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014865 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14866 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014867 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14868 msm_routing_get_port_mixer,
14869 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014870 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14871 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014872 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14873 msm_routing_get_port_mixer,
14874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014875 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14876 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014877 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14878 msm_routing_get_port_mixer,
14879 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014880};
14881
14882static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014883 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14884 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014885 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14886 msm_routing_get_port_mixer,
14887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014888 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14889 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014890 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14891 msm_routing_get_port_mixer,
14892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014893 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14894 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014895 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14896 msm_routing_get_port_mixer,
14897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014898 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14899 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014900 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14901 msm_routing_get_port_mixer,
14902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014903 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14904 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014905 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14906 msm_routing_get_port_mixer,
14907 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014908 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14909 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014910 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14911 msm_routing_get_port_mixer,
14912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014913 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14914 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014915 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14916 msm_routing_get_port_mixer,
14917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014918 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14919 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014920 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14921 msm_routing_get_port_mixer,
14922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014923 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14924 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014925 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14926 msm_routing_get_port_mixer,
14927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014928 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14929 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014930 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14931 msm_routing_get_port_mixer,
14932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014933 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14934 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014935 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14936 msm_routing_get_port_mixer,
14937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014938 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14939 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014940 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14941 msm_routing_get_port_mixer,
14942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014943 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14944 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014945 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14946 msm_routing_get_port_mixer,
14947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014948 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14949 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014950 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14951 msm_routing_get_port_mixer,
14952 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014953 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14954 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014955 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14956 msm_routing_get_port_mixer,
14957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014958 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14959 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014960 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14961 msm_routing_get_port_mixer,
14962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014963 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14964 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014965 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14966 msm_routing_get_port_mixer,
14967 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014968 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14969 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014970 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14971 msm_routing_get_port_mixer,
14972 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014973 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14974 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014975 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14976 msm_routing_get_port_mixer,
14977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014978 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14979 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014980 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14981 msm_routing_get_port_mixer,
14982 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014983};
14984
14985static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014986 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14987 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014988 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14989 msm_routing_get_port_mixer,
14990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014991 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14992 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014993 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14994 msm_routing_get_port_mixer,
14995 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014996 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14997 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014998 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14999 msm_routing_get_port_mixer,
15000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015001 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15002 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015003 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15004 msm_routing_get_port_mixer,
15005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015006 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15007 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015008 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15009 msm_routing_get_port_mixer,
15010 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015011 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15012 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015013 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15014 msm_routing_get_port_mixer,
15015 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015016 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15017 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015018 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15019 msm_routing_get_port_mixer,
15020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015021 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15022 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015023 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15024 msm_routing_get_port_mixer,
15025 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015026 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15027 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015028 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15029 msm_routing_get_port_mixer,
15030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015031 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15032 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015033 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15034 msm_routing_get_port_mixer,
15035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015036 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15037 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015038 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15039 msm_routing_get_port_mixer,
15040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015041 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15042 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015043 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15044 msm_routing_get_port_mixer,
15045 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015046 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15047 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015048 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15049 msm_routing_get_port_mixer,
15050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015051 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15052 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015053 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15054 msm_routing_get_port_mixer,
15055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015056 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15057 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015058 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15059 msm_routing_get_port_mixer,
15060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015061 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15062 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015063 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15064 msm_routing_get_port_mixer,
15065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015066 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15067 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015068 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15069 msm_routing_get_port_mixer,
15070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015071 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15072 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015073 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15074 msm_routing_get_port_mixer,
15075 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015076 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15077 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015078 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15079 msm_routing_get_port_mixer,
15080 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015081 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15082 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015083 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15084 msm_routing_get_port_mixer,
15085 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015086};
15087
15088static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015089 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15090 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015091 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15092 msm_routing_get_port_mixer,
15093 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015094 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15095 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015096 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15097 msm_routing_get_port_mixer,
15098 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015099 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15100 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015101 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15102 msm_routing_get_port_mixer,
15103 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015104 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15105 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015106 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15107 msm_routing_get_port_mixer,
15108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015109 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15110 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015111 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15112 msm_routing_get_port_mixer,
15113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015114 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15115 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015116 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15117 msm_routing_get_port_mixer,
15118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015119 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15120 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015121 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15122 msm_routing_get_port_mixer,
15123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015124 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15125 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015126 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15127 msm_routing_get_port_mixer,
15128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015129 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15130 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015131 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15132 msm_routing_get_port_mixer,
15133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015134 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15135 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015136 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15137 msm_routing_get_port_mixer,
15138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015139 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15140 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015141 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15142 msm_routing_get_port_mixer,
15143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015144 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15145 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015146 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15147 msm_routing_get_port_mixer,
15148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015149 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15150 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015151 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15152 msm_routing_get_port_mixer,
15153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015154 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15155 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015156 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15157 msm_routing_get_port_mixer,
15158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015159 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15160 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015161 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15162 msm_routing_get_port_mixer,
15163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015164 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15165 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015166 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15167 msm_routing_get_port_mixer,
15168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015169 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15170 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015171 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15172 msm_routing_get_port_mixer,
15173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015174 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15175 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015176 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15177 msm_routing_get_port_mixer,
15178 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015179 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15180 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015181 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15182 msm_routing_get_port_mixer,
15183 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015184 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15185 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015186 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15187 msm_routing_get_port_mixer,
15188 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015189};
15190
Derek Chenfdcc0982018-10-02 15:14:03 -070015191static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15192 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15193 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15194 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15195 msm_routing_get_port_mixer,
15196 msm_routing_put_port_mixer),
15197};
15198
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015199static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015200 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15201 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015202 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15203 msm_routing_get_port_mixer,
15204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015205 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15206 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015207 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15208 msm_routing_get_port_mixer,
15209 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015210 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15211 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015212 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15213 msm_routing_get_port_mixer,
15214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015215 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15216 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015217 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15218 msm_routing_get_port_mixer,
15219 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015220 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15221 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015222 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15223 msm_routing_get_port_mixer,
15224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015225 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15226 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015227 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15228 msm_routing_get_port_mixer,
15229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015230 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15231 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015232 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15233 msm_routing_get_port_mixer,
15234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015235 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15236 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015237 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15238 msm_routing_get_port_mixer,
15239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015240 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15241 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015242 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15243 msm_routing_get_port_mixer,
15244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015245 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15246 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015247 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15248 msm_routing_get_port_mixer,
15249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015250 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15251 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015252 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15253 msm_routing_get_port_mixer,
15254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015255 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15256 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015257 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15258 msm_routing_get_port_mixer,
15259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015260 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15261 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015262 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15263 msm_routing_get_port_mixer,
15264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015265 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15266 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015267 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15268 msm_routing_get_port_mixer,
15269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015270 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15271 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015272 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15273 msm_routing_get_port_mixer,
15274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015275 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15276 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015277 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15278 msm_routing_get_port_mixer,
15279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015280 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15281 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015282 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15283 msm_routing_get_port_mixer,
15284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015285 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15286 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015287 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15288 msm_routing_get_port_mixer,
15289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015290 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15291 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015292 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15293 msm_routing_get_port_mixer,
15294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015295 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15296 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015297 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15298 msm_routing_get_port_mixer,
15299 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015300};
15301
15302static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015303 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15304 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015305 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15306 msm_routing_get_port_mixer,
15307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015308 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15309 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015310 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15311 msm_routing_get_port_mixer,
15312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015313 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15314 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015315 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15316 msm_routing_get_port_mixer,
15317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015318 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15319 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015320 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15321 msm_routing_get_port_mixer,
15322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015323 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15324 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015325 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15326 msm_routing_get_port_mixer,
15327 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015328 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15329 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015330 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15331 msm_routing_get_port_mixer,
15332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015333 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15334 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015335 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15336 msm_routing_get_port_mixer,
15337 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015338 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15339 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015340 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15341 msm_routing_get_port_mixer,
15342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015343 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15344 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015345 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15346 msm_routing_get_port_mixer,
15347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015348 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15349 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015350 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15351 msm_routing_get_port_mixer,
15352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015353 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15354 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015355 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15356 msm_routing_get_port_mixer,
15357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015358 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15359 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015360 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15361 msm_routing_get_port_mixer,
15362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015363 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15364 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015365 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15366 msm_routing_get_port_mixer,
15367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015368 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15369 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015370 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15371 msm_routing_get_port_mixer,
15372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015373 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15374 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015375 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15376 msm_routing_get_port_mixer,
15377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015378 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15379 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015380 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15381 msm_routing_get_port_mixer,
15382 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015383 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15384 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015385 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15386 msm_routing_get_port_mixer,
15387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015388 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15389 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015390 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15391 msm_routing_get_port_mixer,
15392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015393 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15394 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015395 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15396 msm_routing_get_port_mixer,
15397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015398 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15399 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015400 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15401 msm_routing_get_port_mixer,
15402 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015403};
15404
15405static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015406 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15407 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015408 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15409 msm_routing_get_port_mixer,
15410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015411 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15412 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015413 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15414 msm_routing_get_port_mixer,
15415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015416 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15417 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015418 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15419 msm_routing_get_port_mixer,
15420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015421 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15422 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015423 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15424 msm_routing_get_port_mixer,
15425 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015426 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15427 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015428 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15429 msm_routing_get_port_mixer,
15430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015431 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15432 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015433 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15434 msm_routing_get_port_mixer,
15435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015436 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15437 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015438 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15439 msm_routing_get_port_mixer,
15440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015441 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15442 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015443 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15444 msm_routing_get_port_mixer,
15445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015446 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15447 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015448 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15449 msm_routing_get_port_mixer,
15450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015451 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15452 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015453 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15454 msm_routing_get_port_mixer,
15455 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015456 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15457 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015458 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15459 msm_routing_get_port_mixer,
15460 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015461 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15462 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015463 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15464 msm_routing_get_port_mixer,
15465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015466 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15467 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015468 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15469 msm_routing_get_port_mixer,
15470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015471 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15472 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015473 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15474 msm_routing_get_port_mixer,
15475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015476 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15477 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015478 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15479 msm_routing_get_port_mixer,
15480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015481 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15482 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015483 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15484 msm_routing_get_port_mixer,
15485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015486 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15487 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015488 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15489 msm_routing_get_port_mixer,
15490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015491 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15492 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015493 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15494 msm_routing_get_port_mixer,
15495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015496 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15497 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015498 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15499 msm_routing_get_port_mixer,
15500 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015501 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15502 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015503 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15504 msm_routing_get_port_mixer,
15505 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015506};
15507
15508static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015509 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15510 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015511 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15512 msm_routing_get_port_mixer,
15513 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015514 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15515 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015516 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15517 msm_routing_get_port_mixer,
15518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015519 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15520 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015521 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15522 msm_routing_get_port_mixer,
15523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015524 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15525 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015526 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15527 msm_routing_get_port_mixer,
15528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015529 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15530 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015531 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15532 msm_routing_get_port_mixer,
15533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015534 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15535 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015536 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15537 msm_routing_get_port_mixer,
15538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015539 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15540 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015541 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15542 msm_routing_get_port_mixer,
15543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015544 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15545 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015546 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15547 msm_routing_get_port_mixer,
15548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015549 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15550 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015551 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15552 msm_routing_get_port_mixer,
15553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015554 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15555 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015556 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15557 msm_routing_get_port_mixer,
15558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015559 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15560 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015561 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15562 msm_routing_get_port_mixer,
15563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015564 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15565 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015566 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15567 msm_routing_get_port_mixer,
15568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015569 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15570 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015571 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15572 msm_routing_get_port_mixer,
15573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015574 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15575 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015576 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15577 msm_routing_get_port_mixer,
15578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015579 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15580 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015581 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15582 msm_routing_get_port_mixer,
15583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015584 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15585 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015586 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15587 msm_routing_get_port_mixer,
15588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015589 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15590 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015591 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15592 msm_routing_get_port_mixer,
15593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015594 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15595 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015596 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15597 msm_routing_get_port_mixer,
15598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015599 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15600 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015601 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15602 msm_routing_get_port_mixer,
15603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015604 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15605 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015606 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15607 msm_routing_get_port_mixer,
15608 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015609};
15610
15611static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015612 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15613 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015614 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15615 msm_routing_get_port_mixer,
15616 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015617 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15618 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015619 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15620 msm_routing_get_port_mixer,
15621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015622 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15623 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015624 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15625 msm_routing_get_port_mixer,
15626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015627 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15628 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015629 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15630 msm_routing_get_port_mixer,
15631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015632 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15633 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015634 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15635 msm_routing_get_port_mixer,
15636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015637 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15638 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015639 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15640 msm_routing_get_port_mixer,
15641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015642 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15643 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015644 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15645 msm_routing_get_port_mixer,
15646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015647 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15648 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015649 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15650 msm_routing_get_port_mixer,
15651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015652 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15653 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015654 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15655 msm_routing_get_port_mixer,
15656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015657 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15658 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015659 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15660 msm_routing_get_port_mixer,
15661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015662 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15663 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015664 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15665 msm_routing_get_port_mixer,
15666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015667 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15668 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015669 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15670 msm_routing_get_port_mixer,
15671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015672 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15673 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015674 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15675 msm_routing_get_port_mixer,
15676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015677 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15678 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015679 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15680 msm_routing_get_port_mixer,
15681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015682 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15683 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015684 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15685 msm_routing_get_port_mixer,
15686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015687 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15688 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015689 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15690 msm_routing_get_port_mixer,
15691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015692 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15693 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015694 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15695 msm_routing_get_port_mixer,
15696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015697 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15698 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015699 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15700 msm_routing_get_port_mixer,
15701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015702 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15703 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015704 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15705 msm_routing_get_port_mixer,
15706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015707 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15708 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015709 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15710 msm_routing_get_port_mixer,
15711 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015712};
15713
15714static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015715 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15716 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015717 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15718 msm_routing_get_port_mixer,
15719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015720 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15721 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015722 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15723 msm_routing_get_port_mixer,
15724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015725 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15726 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015727 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15728 msm_routing_get_port_mixer,
15729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015730 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15731 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015732 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15733 msm_routing_get_port_mixer,
15734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015735 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15736 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015737 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15738 msm_routing_get_port_mixer,
15739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015740 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15741 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015742 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15743 msm_routing_get_port_mixer,
15744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015745 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15746 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015747 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15748 msm_routing_get_port_mixer,
15749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015750 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15751 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015752 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15753 msm_routing_get_port_mixer,
15754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015755 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15756 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015757 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15758 msm_routing_get_port_mixer,
15759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015760 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15761 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015762 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15763 msm_routing_get_port_mixer,
15764 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015765 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15766 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015767 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15768 msm_routing_get_port_mixer,
15769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015770 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15771 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015772 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15773 msm_routing_get_port_mixer,
15774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015775 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15776 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015777 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15778 msm_routing_get_port_mixer,
15779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015780 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15781 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015782 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15783 msm_routing_get_port_mixer,
15784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015785 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15786 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015787 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15788 msm_routing_get_port_mixer,
15789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015790 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15791 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015792 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15793 msm_routing_get_port_mixer,
15794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015795 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15796 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015797 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15798 msm_routing_get_port_mixer,
15799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015800 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15801 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015802 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15803 msm_routing_get_port_mixer,
15804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015805 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15806 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015807 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15808 msm_routing_get_port_mixer,
15809 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015810 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15811 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015812 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15813 msm_routing_get_port_mixer,
15814 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015815};
15816
15817static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015818 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15819 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015820 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15821 msm_routing_get_port_mixer,
15822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015823 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15824 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015825 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15826 msm_routing_get_port_mixer,
15827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015828 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15829 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015830 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15831 msm_routing_get_port_mixer,
15832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015833 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15834 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015835 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15836 msm_routing_get_port_mixer,
15837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015838 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15839 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015840 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15841 msm_routing_get_port_mixer,
15842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015843 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15844 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015845 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15846 msm_routing_get_port_mixer,
15847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015848 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15849 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015850 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15851 msm_routing_get_port_mixer,
15852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015853 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15854 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015855 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15856 msm_routing_get_port_mixer,
15857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015858 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15859 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015860 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15861 msm_routing_get_port_mixer,
15862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015863 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15864 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015865 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15866 msm_routing_get_port_mixer,
15867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015868 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15869 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015870 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15871 msm_routing_get_port_mixer,
15872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015873 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15874 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015875 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15876 msm_routing_get_port_mixer,
15877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015878 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15879 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015880 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15881 msm_routing_get_port_mixer,
15882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015883 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15884 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015885 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15886 msm_routing_get_port_mixer,
15887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015888 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15889 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015890 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15891 msm_routing_get_port_mixer,
15892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015893 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15894 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015895 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15896 msm_routing_get_port_mixer,
15897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015898 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15899 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015900 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15901 msm_routing_get_port_mixer,
15902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015903 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15904 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015905 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15906 msm_routing_get_port_mixer,
15907 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015908 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15909 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015910 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15911 msm_routing_get_port_mixer,
15912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015913 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15914 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015915 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15916 msm_routing_get_port_mixer,
15917 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015918};
15919
15920static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015921 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15922 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015923 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15924 msm_routing_get_port_mixer,
15925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015926 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15927 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015928 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15929 msm_routing_get_port_mixer,
15930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015931 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15932 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015933 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15934 msm_routing_get_port_mixer,
15935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015936 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15937 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015938 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15939 msm_routing_get_port_mixer,
15940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015941 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15942 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015943 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15944 msm_routing_get_port_mixer,
15945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015946 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15947 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015948 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15949 msm_routing_get_port_mixer,
15950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015951 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15952 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015953 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15954 msm_routing_get_port_mixer,
15955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015956 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15957 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015958 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15959 msm_routing_get_port_mixer,
15960 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015961 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15962 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015963 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15964 msm_routing_get_port_mixer,
15965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015966 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15967 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015968 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15969 msm_routing_get_port_mixer,
15970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015971 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15972 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015973 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15974 msm_routing_get_port_mixer,
15975 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015976 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15977 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015978 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15979 msm_routing_get_port_mixer,
15980 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015981 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15982 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015983 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15984 msm_routing_get_port_mixer,
15985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015986 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15987 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015988 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15989 msm_routing_get_port_mixer,
15990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015991 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15992 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015993 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15994 msm_routing_get_port_mixer,
15995 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015996 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15997 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015998 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15999 msm_routing_get_port_mixer,
16000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016001 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16002 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016003 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16004 msm_routing_get_port_mixer,
16005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016006 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16007 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016008 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16009 msm_routing_get_port_mixer,
16010 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016011 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16012 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016013 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16014 msm_routing_get_port_mixer,
16015 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016016 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16017 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016018 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16019 msm_routing_get_port_mixer,
16020 msm_routing_put_port_mixer),
16021};
16022
16023static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016024 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16025 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016026 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16027 msm_routing_get_port_mixer,
16028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016029 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16030 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016031 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16032 msm_routing_get_port_mixer,
16033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016034 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16035 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016036 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16037 msm_routing_get_port_mixer,
16038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016039 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16040 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016041 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16042 msm_routing_get_port_mixer,
16043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016044 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16045 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016046 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16047 msm_routing_get_port_mixer,
16048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016049 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16050 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016051 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16052 msm_routing_get_port_mixer,
16053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016054 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16055 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016056 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16057 msm_routing_get_port_mixer,
16058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016059 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16060 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016061 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16062 msm_routing_get_port_mixer,
16063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016064 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16065 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016066 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16067 msm_routing_get_port_mixer,
16068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016069 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16070 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016071 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16072 msm_routing_get_port_mixer,
16073 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016074 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16075 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016076 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16077 msm_routing_get_port_mixer,
16078 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016079 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16080 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016081 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16082 msm_routing_get_port_mixer,
16083 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016084 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16085 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016086 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16087 msm_routing_get_port_mixer,
16088 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016089 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16090 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016091 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16092 msm_routing_get_port_mixer,
16093 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016094 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16095 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016096 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16097 msm_routing_get_port_mixer,
16098 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016099 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16100 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016101 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16102 msm_routing_get_port_mixer,
16103 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016104 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16105 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016106 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16107 msm_routing_get_port_mixer,
16108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016109 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16110 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016111 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16112 msm_routing_get_port_mixer,
16113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016114 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16115 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016116 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16117 msm_routing_get_port_mixer,
16118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016119 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16120 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016121 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16122 msm_routing_get_port_mixer,
16123 msm_routing_put_port_mixer),
16124};
16125
16126static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016127 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16128 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016129 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16130 msm_routing_get_port_mixer,
16131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016132 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16133 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016134 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16135 msm_routing_get_port_mixer,
16136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016137 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16138 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016139 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16140 msm_routing_get_port_mixer,
16141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016142 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16143 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016144 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16145 msm_routing_get_port_mixer,
16146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016147 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16148 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016149 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16150 msm_routing_get_port_mixer,
16151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016152 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16153 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016154 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16155 msm_routing_get_port_mixer,
16156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016157 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16158 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016159 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16160 msm_routing_get_port_mixer,
16161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016162 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16163 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016164 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16165 msm_routing_get_port_mixer,
16166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016167 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16168 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016169 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16170 msm_routing_get_port_mixer,
16171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016172 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16173 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016174 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16175 msm_routing_get_port_mixer,
16176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016177 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16178 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016179 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16180 msm_routing_get_port_mixer,
16181 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016182 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16183 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016184 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16185 msm_routing_get_port_mixer,
16186 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016187 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16188 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016189 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16190 msm_routing_get_port_mixer,
16191 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016192 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16193 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016194 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16195 msm_routing_get_port_mixer,
16196 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016197 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16198 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016199 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16200 msm_routing_get_port_mixer,
16201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016202 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16203 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016204 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16205 msm_routing_get_port_mixer,
16206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016207 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16208 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016209 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16210 msm_routing_get_port_mixer,
16211 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016212 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16213 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016214 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16215 msm_routing_get_port_mixer,
16216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016217 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16218 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016219 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16220 msm_routing_get_port_mixer,
16221 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016222 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16223 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016224 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16225 msm_routing_get_port_mixer,
16226 msm_routing_put_port_mixer),
16227};
16228
16229static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016230 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16231 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016232 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16233 msm_routing_get_port_mixer,
16234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016235 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16236 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016237 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16238 msm_routing_get_port_mixer,
16239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016240 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16241 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016242 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16243 msm_routing_get_port_mixer,
16244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016245 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16246 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016247 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16248 msm_routing_get_port_mixer,
16249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016250 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16251 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016252 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16253 msm_routing_get_port_mixer,
16254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016255 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16256 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016257 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16258 msm_routing_get_port_mixer,
16259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016260 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16261 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016262 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16263 msm_routing_get_port_mixer,
16264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016265 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16266 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016267 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16268 msm_routing_get_port_mixer,
16269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016270 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16271 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016272 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16273 msm_routing_get_port_mixer,
16274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016275 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16276 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016277 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16278 msm_routing_get_port_mixer,
16279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016280 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16281 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016282 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16283 msm_routing_get_port_mixer,
16284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016285 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16286 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016287 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16288 msm_routing_get_port_mixer,
16289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016290 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16291 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016292 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16293 msm_routing_get_port_mixer,
16294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016295 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16296 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016297 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16298 msm_routing_get_port_mixer,
16299 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016300 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16301 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016302 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16303 msm_routing_get_port_mixer,
16304 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016305 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16306 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016307 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16308 msm_routing_get_port_mixer,
16309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016310 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16311 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016312 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16313 msm_routing_get_port_mixer,
16314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016315 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16316 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016317 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16318 msm_routing_get_port_mixer,
16319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016320 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16321 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016322 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16323 msm_routing_get_port_mixer,
16324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016325 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16326 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016327 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16328 msm_routing_get_port_mixer,
16329 msm_routing_put_port_mixer),
16330};
16331
16332static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016333 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16334 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016335 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16336 msm_routing_get_port_mixer,
16337 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016338 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16339 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016340 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16341 msm_routing_get_port_mixer,
16342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016343 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16344 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016345 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16346 msm_routing_get_port_mixer,
16347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016348 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16349 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016350 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16351 msm_routing_get_port_mixer,
16352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016353 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16354 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016355 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16356 msm_routing_get_port_mixer,
16357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016358 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16359 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016360 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16361 msm_routing_get_port_mixer,
16362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016363 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16364 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016365 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16366 msm_routing_get_port_mixer,
16367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016368 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16369 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016370 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16371 msm_routing_get_port_mixer,
16372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016373 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16374 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016375 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16376 msm_routing_get_port_mixer,
16377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016378 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16379 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016380 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16381 msm_routing_get_port_mixer,
16382 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016383 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16384 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016385 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16386 msm_routing_get_port_mixer,
16387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016388 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16389 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016390 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16391 msm_routing_get_port_mixer,
16392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016393 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16394 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016395 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16396 msm_routing_get_port_mixer,
16397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016398 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16399 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016400 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16401 msm_routing_get_port_mixer,
16402 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016403 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16404 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016405 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16406 msm_routing_get_port_mixer,
16407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016408 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16409 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016410 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16411 msm_routing_get_port_mixer,
16412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016413 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16414 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016415 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16416 msm_routing_get_port_mixer,
16417 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016418 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16419 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016420 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16421 msm_routing_get_port_mixer,
16422 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016423 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16424 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016425 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16426 msm_routing_get_port_mixer,
16427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016428 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16429 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016430 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16431 msm_routing_get_port_mixer,
16432 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016433};
16434
16435static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016436 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16437 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016438 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016440 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16441 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016442 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016444 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16445 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016446 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16447 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016448 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16449 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016450 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016452 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16453 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016454 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16455 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016456 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16457 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016458 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016460 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16461 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016462 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16463 msm_routing_put_port_mixer),
16464};
16465
16466static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016467 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16468 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016469 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016471 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16472 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016473 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016475 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16476 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016477 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16478 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016479 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16480 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016481 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016483 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16484 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016485 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016487 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16488 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016489 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016491 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16492 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016493 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016495 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16496 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016497 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016499 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16500 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016501 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16502 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016503};
16504
16505static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016506 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16507 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016508 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16509 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016510 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16511 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016512 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16513 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016514 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16515 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016516 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16517 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016518 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16519 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016520 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16521 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016522 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16523 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016524 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16525 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016526 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16527 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016528 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16529 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016530 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16531 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016532 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16533 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016534 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16535 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016536 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16537 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016538 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16539 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16540 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16541 msm_routing_put_listen_mixer),
16542 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16543 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16544 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16545 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016546 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16547 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16548 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16549 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016550 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16551 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16552 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16553 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016554 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16555 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16556 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16557 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016558};
16559
16560static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016561 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16562 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016563 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16564 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016565 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16566 SND_SOC_NOPM,
16567 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016568 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16569 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016570 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16571 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016572 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16573 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016574 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16575 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016576 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16577 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016578 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16579 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016580 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16581 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016582 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16583 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016584 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16585 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016586 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16587 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016588 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16589 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016590 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16591 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016592 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16593 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016594 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16595 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16596 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16597 msm_routing_put_listen_mixer),
16598 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16599 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16600 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16601 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016602 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16603 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16604 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16605 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016606 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16607 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16608 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16609 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016610 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16611 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16612 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16613 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016614};
16615
16616static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016617 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16618 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016619 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16620 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016621 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16622 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016623 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16624 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016625 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16626 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016627 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16628 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016629 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16630 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016631 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16632 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016633 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16634 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016635 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16636 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016637 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16638 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016639 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16640 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016641 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16642 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016643 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16644 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016645 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16646 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016647 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16648 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016649 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16650 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16651 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16652 msm_routing_put_listen_mixer),
16653 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16654 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16655 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16656 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016657 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16658 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16659 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16660 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016661 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16662 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16663 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16664 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016665 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16666 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16667 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16668 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016669};
16670
16671static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016672 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16673 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016674 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16675 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016676 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16677 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016678 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16679 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016680 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16681 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016682 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16683 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016684 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16685 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016686 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16687 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016688 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16689 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016690 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16691 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016692 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16693 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016694 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16695 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016696 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16697 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016698 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16699 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016700 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16701 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016702 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16703 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016704 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16705 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16706 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16707 msm_routing_put_listen_mixer),
16708 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16709 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16710 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16711 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016712 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16713 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16714 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16715 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016716 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16717 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16718 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16719 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016720 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16721 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16722 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16723 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016724};
16725
16726static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016727 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16728 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016729 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16730 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016731 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16732 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016733 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16734 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016735 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16736 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016737 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16738 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016739 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16740 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016741 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16742 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016743 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16744 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016745 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16746 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016747 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16748 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016749 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16750 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016751 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16752 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016753 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16754 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016755 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16756 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016757 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16758 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016759 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16760 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16761 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16762 msm_routing_put_listen_mixer),
16763 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16764 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16765 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16766 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016767 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16768 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16769 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16770 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016771 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16772 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16773 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16774 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016775 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16776 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16777 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16778 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016779};
16780
16781static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016782 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16783 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016784 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16785 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016786 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16787 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016788 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16789 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016790 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16791 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016792 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16793 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016794 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16795 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016796 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16797 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016798 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16799 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016800 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16801 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016802 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16803 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016804 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16805 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016806 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16807 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016808 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16809 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016810 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16811 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016812 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16813 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016814 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16815 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16816 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16817 msm_routing_put_listen_mixer),
16818 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16819 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16820 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16821 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016822 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16823 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16824 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16825 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016826 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16827 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16828 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16829 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016830 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16831 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16832 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16833 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016834};
16835
16836static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016837 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16838 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016839 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16840 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016841 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16842 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016843 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16844 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016845 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16846 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016847 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16848 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016849 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16850 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016851 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16852 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016853 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16854 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016855 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16856 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016857 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16858 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016859 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16860 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016861 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16862 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016863 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16864 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016865 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16866 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016867 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16868 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016869 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16870 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16871 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16872 msm_routing_put_listen_mixer),
16873 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16874 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16875 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16876 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016877 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16878 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16879 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16880 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016881 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16882 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16883 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16884 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016885 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16886 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16887 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16888 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016889};
16890
16891static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016892 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16893 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016894 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16895 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016896 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16897 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016898 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16899 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016900 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16901 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016902 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16903 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016904 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16905 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016906 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16907 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016908 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16909 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016910 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16911 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016912 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16913 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016914 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16915 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016916 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16917 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016918 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16919 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016920 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16921 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016922 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16923 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016924 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16925 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16926 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16927 msm_routing_put_listen_mixer),
16928 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16929 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16930 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16931 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016932 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16933 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16934 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16935 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016936 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16937 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16938 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16939 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016940 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16941 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16942 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16943 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016944};
16945
16946static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16947 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16948 0, 1, 0, msm_routing_get_switch_mixer,
16949 msm_routing_put_switch_mixer);
16950
16951static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16952 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16953 0, 1, 0, msm_routing_get_switch_mixer,
16954 msm_routing_put_switch_mixer);
16955
16956static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16957 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16958 0, 1, 0, msm_routing_get_switch_mixer,
16959 msm_routing_put_switch_mixer);
16960
16961static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16962 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16963 0, 1, 0, msm_routing_get_switch_mixer,
16964 msm_routing_put_switch_mixer);
16965
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016966static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
16967 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16968 0, 1, 0, msm_routing_get_switch_mixer,
16969 msm_routing_put_switch_mixer);
16970
16971static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016972 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16973 0, 1, 0, msm_routing_get_switch_mixer,
16974 msm_routing_put_switch_mixer);
16975
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016976static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16977 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16978 0, 1, 0, msm_routing_get_switch_mixer,
16979 msm_routing_put_switch_mixer);
16980
16981static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16982 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16983 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16984 msm_routing_put_fm_pcmrx_switch_mixer);
16985
16986static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16987 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16988 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16989 msm_routing_put_int0_mi2s_switch_mixer);
16990
16991static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16992 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16993 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16994 msm_routing_put_int4_mi2s_switch_mixer);
16995
16996static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16997 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16998 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16999 msm_routing_put_pri_mi2s_switch_mixer);
17000
17001static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
17002 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17003 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
17004 msm_routing_put_sec_mi2s_switch_mixer);
17005
17006static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
17007 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17008 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
17009 msm_routing_put_tert_mi2s_switch_mixer);
17010
17011static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
17012 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17013 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
17014 msm_routing_put_quat_mi2s_switch_mixer);
17015
Rohit Kumara5077932017-09-10 22:05:05 +053017016static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
17017 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17018 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
17019 msm_routing_put_quin_mi2s_switch_mixer);
17020
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017021static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
17022 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17023 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17024 msm_routing_put_hfp_switch_mixer);
17025
17026static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
17027 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17028 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17029 msm_routing_put_hfp_switch_mixer);
17030
17031static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
17032 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17033 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17034 msm_routing_put_hfp_switch_mixer);
17035
17036static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
17037 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17038 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17039 msm_routing_put_hfp_switch_mixer);
17040
17041static const struct snd_kcontrol_new usb_switch_mixer_controls =
17042 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17043 0, 1, 0, msm_routing_get_usb_switch_mixer,
17044 msm_routing_put_usb_switch_mixer);
17045
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080017046static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
17047 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17048 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
17049 msm_routing_a2dp_switch_mixer_put);
17050
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017051static const struct soc_enum lsm_port_enum =
17052 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
17053
17054static const char * const lsm_func_text[] = {
17055 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
17056};
17057static const struct soc_enum lsm_func_enum =
17058 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
17059
17060static const struct snd_kcontrol_new lsm_controls[] = {
17061 /* kcontrol of lsm_function */
17062 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17063 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17064 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17065 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17066 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17067 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17068 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17069 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17070 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17071 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17072 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17073 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17074 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17075 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17076 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17077 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17078 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17079 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017080 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17081 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017082 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17083 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017084 /* kcontrol of lsm_port */
17085 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
17086 msm_routing_lsm_port_get,
17087 msm_routing_lsm_port_put),
17088 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
17089 msm_routing_lsm_port_get,
17090 msm_routing_lsm_port_put),
17091 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
17092 msm_routing_lsm_port_get,
17093 msm_routing_lsm_port_put),
17094 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
17095 msm_routing_lsm_port_get,
17096 msm_routing_lsm_port_put),
17097 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
17098 msm_routing_lsm_port_get,
17099 msm_routing_lsm_port_put),
17100 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
17101 msm_routing_lsm_port_get,
17102 msm_routing_lsm_port_put),
17103 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
17104 msm_routing_lsm_port_get,
17105 msm_routing_lsm_port_put),
17106 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
17107 msm_routing_lsm_port_get,
17108 msm_routing_lsm_port_put),
17109};
17110
17111static const char * const aanc_slim_0_rx_text[] = {
17112 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
17113 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
17114};
17115
17116static const struct soc_enum aanc_slim_0_rx_enum =
17117 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
17118 aanc_slim_0_rx_text);
17119
17120static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
17121 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
17122 msm_routing_slim_0_rx_aanc_mux_get,
17123 msm_routing_slim_0_rx_aanc_mux_put)
17124};
17125
Sudheer Papothic07b37a2018-05-04 05:56:47 +053017126static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
17127 struct snd_ctl_elem_value *ucontrol)
17128{
17129 ucontrol->value.integer.value[0] = aanc_level;
17130
17131 return 0;
17132}
17133
17134static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
17135 struct snd_ctl_elem_value *ucontrol)
17136{
17137 int ret = 0;
17138
17139 mutex_lock(&routing_lock);
17140 aanc_level = ucontrol->value.integer.value[0];
17141 pr_debug("%s: value: %ld\n",
17142 __func__, ucontrol->value.integer.value[0]);
17143 ret = afe_set_aanc_noise_level(aanc_level);
17144 mutex_unlock(&routing_lock);
17145
17146 return ret;
17147}
17148
17149static const struct snd_kcontrol_new aanc_noise_level[] = {
17150 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
17151 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
17152};
17153
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017154static int msm_routing_get_stereo_to_custom_stereo_control(
17155 struct snd_kcontrol *kcontrol,
17156 struct snd_ctl_elem_value *ucontrol)
17157{
17158 ucontrol->value.integer.value[0] = is_custom_stereo_on;
17159 return 0;
17160}
17161
17162static int msm_routing_put_stereo_to_custom_stereo_control(
17163 struct snd_kcontrol *kcontrol,
17164 struct snd_ctl_elem_value *ucontrol)
17165{
17166 int flag = 0, i = 0, rc = 0, idx = 0;
17167 int be_index = 0, port_id, topo_id;
17168 unsigned int session_id = 0;
17169 uint16_t op_FL_ip_FL_weight = 0;
17170 uint16_t op_FL_ip_FR_weight = 0;
17171 uint16_t op_FR_ip_FL_weight = 0;
17172 uint16_t op_FR_ip_FR_weight = 0;
17173
17174 flag = ucontrol->value.integer.value[0];
17175 pr_debug("%s E flag %d\n", __func__, flag);
17176
17177 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
17178 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
17179 __func__, is_custom_stereo_on, flag);
17180 return 0;
17181 }
17182 is_custom_stereo_on = flag ? true : false;
17183 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
17184 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
17185 port_id = msm_bedais[be_index].port_id;
17186 if (!msm_bedais[be_index].active)
17187 continue;
17188 if ((port_id != SLIMBUS_0_RX) &&
17189 (port_id != RT_PROXY_PORT_001_RX) &&
17190 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
17191 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
17192 continue;
17193
17194 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
17195 MSM_FRONTEND_DAI_MM_SIZE) {
17196 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
17197 LEGACY_PCM_MODE)
17198 goto skip_send_custom_stereo;
17199 session_id =
17200 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
17201 if (is_custom_stereo_on) {
17202 op_FL_ip_FL_weight =
17203 Q14_GAIN_ZERO_POINT_FIVE;
17204 op_FL_ip_FR_weight =
17205 Q14_GAIN_ZERO_POINT_FIVE;
17206 op_FR_ip_FL_weight =
17207 Q14_GAIN_ZERO_POINT_FIVE;
17208 op_FR_ip_FR_weight =
17209 Q14_GAIN_ZERO_POINT_FIVE;
17210 } else {
17211 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
17212 op_FL_ip_FR_weight = 0;
17213 op_FR_ip_FL_weight = 0;
17214 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
17215 }
17216 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17217 unsigned long copp =
17218 session_copp_map[i]
17219 [SESSION_TYPE_RX][be_index];
17220 if (!test_bit(idx, &copp))
17221 goto skip_send_custom_stereo;
17222 topo_id = adm_get_topology_for_port_copp_idx(
17223 msm_bedais[be_index].port_id, idx);
17224 if (topo_id < 0)
17225 pr_debug("%s:Err:custom stereo topo %d",
17226 __func__, topo_id);
17227 pr_debug("idx %d\n", idx);
17228 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17229 rc = msm_ds2_dap_set_custom_stereo_onoff
17230 (msm_bedais[be_index].port_id,
17231 idx, is_custom_stereo_on);
17232 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17233 rc = dolby_dap_set_custom_stereo_onoff(
17234 msm_bedais[be_index].port_id,
17235 idx, is_custom_stereo_on);
17236 else
17237 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17238 (msm_bedais[be_index].port_id,
17239 idx, session_id,
17240 op_FL_ip_FL_weight,
17241 op_FL_ip_FR_weight,
17242 op_FR_ip_FL_weight,
17243 op_FR_ip_FR_weight);
17244 if (rc < 0)
17245skip_send_custom_stereo:
17246 pr_err("%s: err setting custom stereo\n",
17247 __func__);
17248 }
17249
17250 }
17251 }
17252 return 0;
17253}
17254
17255static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17256 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17257 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17258 msm_routing_put_stereo_to_custom_stereo_control),
17259};
17260
17261static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17262 struct snd_ctl_elem_value *ucontrol)
17263{
17264 return 0;
17265}
17266
17267static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17268 struct snd_ctl_elem_value *ucontrol)
17269{
17270 int i = 0, j;
17271 int num_app_types = ucontrol->value.integer.value[i++];
17272
17273 pr_debug("%s\n", __func__);
17274
17275 memset(app_type_cfg, 0, MAX_APP_TYPES*
17276 sizeof(struct msm_pcm_routing_app_type_data));
17277 if (num_app_types > MAX_APP_TYPES) {
17278 pr_err("%s: number of app types exceed the max supported\n",
17279 __func__);
17280 return -EINVAL;
17281 }
17282 for (j = 0; j < num_app_types; j++) {
17283 app_type_cfg[j].app_type =
17284 ucontrol->value.integer.value[i++];
17285 app_type_cfg[j].sample_rate =
17286 ucontrol->value.integer.value[i++];
17287 app_type_cfg[j].bit_width =
17288 ucontrol->value.integer.value[i++];
17289 }
17290
17291 return 0;
17292}
17293
17294static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17295 struct snd_ctl_elem_value *ucontrol)
17296{
17297 int j, fe_id, be_id, port_type;
17298 int ret = 0;
17299 unsigned long copp;
17300 struct msm_pcm_routing_bdai_data *bedai;
17301 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17302 SESSION_TYPE_RX;
17303 int app_type = ucontrol->value.integer.value[1];
17304 int gain = (ucontrol->value.integer.value[2] +
17305 ucontrol->value.integer.value[3])/2;
17306
17307 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17308 MSM_AFE_PORT_TYPE_TX;
17309
17310 mutex_lock(&routing_lock);
17311 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17312 if (is_be_dai_extproc(be_id))
17313 continue;
17314
17315 bedai = &msm_bedais[be_id];
17316 if (afe_get_port_type(bedai->port_id) != port_type)
17317 continue;
17318
17319 if (!bedai->active)
17320 continue;
17321
17322 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17323 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17324 continue;
17325
17326 if (app_type !=
17327 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17328 continue;
17329
17330 copp = session_copp_map[fe_id][dir][be_id];
17331 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17332 if (!test_bit(j, &copp))
17333 continue;
17334 ret |= adm_set_volume(bedai->port_id, j, gain);
17335 }
17336 }
17337 }
17338 mutex_unlock(&routing_lock);
17339 return ret ? -EINVAL : 0;
17340}
17341
17342static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17343 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17344 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17345 msm_routing_put_app_type_cfg_control),
17346 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17347 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17348};
17349
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017350static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17351 struct snd_ctl_elem_value *ucontrol)
17352{
17353 int copp_idx, fe_id, be_id, port_type;
17354 int ret = 0;
17355 unsigned long copp;
17356 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017357 u8 *packed_params = NULL;
17358 struct param_hdr_v3 param_hdr;
17359 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17360 sizeof(uint32_t));
17361
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017362 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17363 SESSION_TYPE_RX;
17364 int app_type = ucontrol->value.integer.value[1];
17365 int module_id = ucontrol->value.integer.value[2];
17366 int instance_id = ucontrol->value.integer.value[3];
17367 int param_id = ucontrol->value.integer.value[4];
17368 int param_value = ucontrol->value.integer.value[5];
17369
17370 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17371 MSM_AFE_PORT_TYPE_TX;
17372 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17373 __func__, app_type, module_id,
17374 instance_id, param_id, param_value);
17375
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017376 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17377 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017378 return -ENOMEM;
17379
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017380 memset(&param_hdr, 0, sizeof(param_hdr));
17381 param_hdr.module_id = module_id;
17382 param_hdr.instance_id = instance_id;
17383 param_hdr.param_id = param_id;
17384 param_hdr.param_size = sizeof(uint32_t);
17385
17386 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017387
17388 mutex_lock(&routing_lock);
17389 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17390 if (is_be_dai_extproc(be_id))
17391 continue;
17392
17393 bedai = &msm_bedais[be_id];
17394 if (afe_get_port_type(bedai->port_id) != port_type)
17395 continue;
17396
17397 if (!bedai->active)
17398 continue;
17399
17400 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17401 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17402 continue;
17403
17404 if (app_type !=
17405 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17406 continue;
17407
17408 copp = session_copp_map[fe_id][dir][be_id];
17409 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17410 copp_idx++) {
17411 if (!test_bit(copp_idx, &copp))
17412 continue;
17413
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017414 ret = q6common_pack_pp_params(packed_params,
17415 &param_hdr,
17416 (u8 *) &param_value,
17417 &packed_param_size);
17418 if (ret) {
17419 pr_err("%s: Failed to pack params, error %d\n",
17420 __func__, ret);
17421 goto done;
17422 }
17423
17424 ret = adm_set_pp_params(bedai->port_id,
17425 copp_idx, NULL,
17426 packed_params,
17427 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017428 if (ret) {
17429 pr_err("%s: Setting param failed with err=%d\n",
17430 __func__, ret);
17431 ret = -EINVAL;
17432 goto done;
17433 }
17434 }
17435 }
17436 }
17437done:
17438 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017439 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017440 return ret;
17441}
17442
17443static const struct snd_kcontrol_new module_cfg_controls[] = {
17444 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17445 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17446};
17447
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017448static int msm_routing_get_lsm_app_type_cfg_control(
17449 struct snd_kcontrol *kcontrol,
17450 struct snd_ctl_elem_value *ucontrol)
17451{
Meng Wangadbca4f2018-10-29 14:30:13 +080017452 int shift = ((struct soc_multi_mixer_control *)
17453 kcontrol->private_value)->shift;
17454 int i = 0, j = 0;
17455
17456 ucontrol->value.integer.value[i] = num_app_cfg_types;
17457
17458 for (j = 0; j < num_app_cfg_types; ++j) {
17459 ucontrol->value.integer.value[++i] =
17460 lsm_app_type_cfg[j].app_type;
17461 ucontrol->value.integer.value[++i] =
17462 lsm_app_type_cfg[j].sample_rate;
17463 ucontrol->value.integer.value[++i] =
17464 lsm_app_type_cfg[j].bit_width;
17465 if (shift == 1)
17466 ucontrol->value.integer.value[++i] =
17467 lsm_app_type_cfg[j].num_out_channels;
17468 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017469 return 0;
17470}
17471
17472static int msm_routing_put_lsm_app_type_cfg_control(
17473 struct snd_kcontrol *kcontrol,
17474 struct snd_ctl_elem_value *ucontrol)
17475{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017476 int shift = ((struct soc_multi_mixer_control *)
17477 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017478 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017479
Meng Wangadbca4f2018-10-29 14:30:13 +080017480 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017481 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017482 sizeof(struct msm_pcm_routing_app_type_data));
17483
Meng Wangadbca4f2018-10-29 14:30:13 +080017484 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017485 pr_err("%s: number of app types exceed the max supported\n",
17486 __func__);
17487 return -EINVAL;
17488 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017489
Meng Wangadbca4f2018-10-29 14:30:13 +080017490 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017491 lsm_app_type_cfg[j].app_type =
17492 ucontrol->value.integer.value[i++];
17493 lsm_app_type_cfg[j].sample_rate =
17494 ucontrol->value.integer.value[i++];
17495 lsm_app_type_cfg[j].bit_width =
17496 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017497 /* Shift of 1 indicates this is V2 mixer control */
17498 if (shift == 1)
17499 lsm_app_type_cfg[j].num_out_channels =
17500 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017501 }
17502
17503 return 0;
17504}
17505
17506static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17507 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17508 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17509 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017510 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17511 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17512 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017513};
17514
17515static int msm_routing_get_use_ds1_or_ds2_control(
17516 struct snd_kcontrol *kcontrol,
17517 struct snd_ctl_elem_value *ucontrol)
17518{
17519 ucontrol->value.integer.value[0] = is_ds2_on;
17520 return 0;
17521}
17522
17523static int msm_routing_put_use_ds1_or_ds2_control(
17524 struct snd_kcontrol *kcontrol,
17525 struct snd_ctl_elem_value *ucontrol)
17526{
17527 is_ds2_on = ucontrol->value.integer.value[0];
17528 return 0;
17529}
17530
17531static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17532 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17533 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17534 msm_routing_put_use_ds1_or_ds2_control),
17535};
17536
17537int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17538 struct snd_ctl_elem_value *ucontrol) {
17539 int rc = 0;
17540 int be_idx = 0;
17541 char *param_value;
17542 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017543 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17544 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017545
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017546 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017547 if (!param_value)
17548 return -ENOMEM;
17549
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017550 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017551 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17552 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17553 break;
17554 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017555 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17556 param_hdr.instance_id = INSTANCE_ID_0;
17557 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17558 param_hdr.param_size = param_size;
17559 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17560 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017561 if (rc) {
17562 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17563 kfree(param_value);
17564 return -EINVAL;
17565 }
17566 update_param_value = (int *)param_value;
17567 ucontrol->value.integer.value[0] = update_param_value[0];
17568
17569 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17570 __func__, update_param_value[0]);
17571 }
17572 kfree(param_value);
17573 return 0;
17574}
17575
17576static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17577 struct snd_ctl_elem_value *ucontrol)
17578{
17579 voc_session_id = ucontrol->value.integer.value[0];
17580
17581 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17582
17583 return 0;
17584}
17585
17586static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17587 struct snd_ctl_elem_value *ucontrol)
17588{
17589 ucontrol->value.integer.value[0] = voc_session_id;
17590
17591 return 0;
17592}
17593
17594static struct snd_kcontrol_new msm_voc_session_controls[] = {
17595 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17596 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17597 msm_voc_session_id_put),
17598};
17599
17600static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17601 struct snd_ctl_elem_info *uinfo)
17602{
17603 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17604 uinfo->count = sizeof(struct sound_focus_param);
17605
17606 return 0;
17607}
17608
17609static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17610 struct snd_ctl_elem_value *ucontrol)
17611{
17612 int ret = 0;
17613 struct sound_focus_param soundFocusData;
17614
17615 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17616 sizeof(struct sound_focus_param));
17617 ret = voc_set_sound_focus(soundFocusData);
17618 if (ret) {
17619 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17620 __func__, ret);
17621
17622 ret = -EINVAL;
17623 }
17624
17625 return ret;
17626}
17627
17628static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17629 struct snd_ctl_elem_value *ucontrol)
17630{
17631 int ret = 0;
17632 struct sound_focus_param soundFocusData;
17633
17634 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17635
17636 ret = voc_get_sound_focus(&soundFocusData);
17637 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017638 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017639 __func__, ret);
17640
17641 ret = -EINVAL;
17642 goto done;
17643 }
17644 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17645 sizeof(struct sound_focus_param));
17646
17647done:
17648 return ret;
17649}
17650
17651static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17652 struct snd_ctl_elem_info *uinfo)
17653{
17654 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17655 uinfo->count = sizeof(struct source_tracking_param);
17656
17657 return 0;
17658}
17659
17660static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17661 struct snd_ctl_elem_value *ucontrol)
17662{
Meng Wang92edfde2018-04-24 12:18:37 +080017663 int ret = 0;
17664 struct source_tracking_param sourceTrackingData;
17665
17666 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17667
17668 ret = voc_get_source_tracking(&sourceTrackingData);
17669 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017670 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080017671 __func__, ret);
17672
17673 ret = -EINVAL;
17674 goto done;
17675 }
17676 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17677 sizeof(struct source_tracking_param));
17678
17679done:
17680 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017681}
17682
17683static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17684 int *copp_idx)
17685{
17686 int i, idx, be_idx;
17687 int ret = 0;
17688 unsigned long copp;
17689
17690 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17691
17692 ret = q6audio_validate_port(port_id);
17693 if (ret < 0) {
17694 pr_err("%s: port validation failed id 0x%x ret %d\n",
17695 __func__, port_id, ret);
17696
17697 ret = -EINVAL;
17698 goto done;
17699 }
17700
17701 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
17702 if (msm_bedais[be_idx].port_id == port_id)
17703 break;
17704 }
17705 if (be_idx >= MSM_BACKEND_DAI_MAX) {
17706 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
17707
17708 ret = -EINVAL;
17709 goto done;
17710 }
17711
17712 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017713 MSM_FRONTEND_DAI_MAX) {
17714 if (!(is_mm_lsm_fe_id(i) &&
17715 route_check_fe_id_adm_support(i)))
17716 continue;
17717
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017718 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17719 copp = session_copp_map[i]
17720 [session_type][be_idx];
17721 if (test_bit(idx, &copp))
17722 break;
17723 }
17724 if (idx >= MAX_COPPS_PER_PORT)
17725 continue;
17726 else
17727 break;
17728 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017729 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017730 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017731
17732 ret = -EINVAL;
17733 goto done;
17734 }
17735 *copp_idx = idx;
17736 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17737
17738done:
17739 return ret;
17740}
17741
17742static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17743 const char *prefix, int *port_id)
17744{
17745 int ret = 0;
17746
17747 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17748
17749 /*
17750 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17751 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17752 * and compare the string with the backend name to derive the port id.
17753 */
17754 if (!strcmp(kcontrol->id.name + strlen(prefix),
17755 "SLIMBUS_0")) {
17756 *port_id = SLIMBUS_0_TX;
17757 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17758 "TERT_MI2S")) {
17759 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17760 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17761 "INT3_MI2S")) {
17762 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017763 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17764 "VA_CDC_DMA_TX_0")) {
17765 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017766 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17767 "TX_CDC_DMA_TX_3")) {
17768 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017769 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17770 "QUIN_TDM_TX_0")) {
17771 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017772 } else {
17773 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17774 __func__, kcontrol->id.name);
17775
17776 ret = -EINVAL;
17777 goto done;
17778 }
17779 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17780 __func__, kcontrol->id.name, *port_id);
17781
17782done:
17783 return ret;
17784}
17785
17786static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17787 struct snd_ctl_elem_value *ucontrol)
17788{
17789 int ret = 0;
17790 struct sound_focus_param soundFocusData;
17791 int port_id, copp_idx;
17792
17793 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17794 "Sound Focus Audio Tx ", &port_id);
17795 if (ret != 0) {
17796 pr_err("%s: Error in deriving port id, err=%d\n",
17797 __func__, ret);
17798
17799 ret = -EINVAL;
17800 goto done;
17801 }
17802
17803 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17804 &copp_idx);
17805 if (ret) {
17806 pr_err("%s: Could not get copp idx for port_id=%d\n",
17807 __func__, port_id);
17808
17809 ret = -EINVAL;
17810 goto done;
17811 }
17812
17813 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17814 sizeof(struct sound_focus_param));
17815
17816 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17817 if (ret) {
17818 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17819 __func__, ret);
17820
17821 ret = -EINVAL;
17822 goto done;
17823 }
17824
17825done:
17826 return ret;
17827}
17828
17829static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17830 struct snd_ctl_elem_value *ucontrol)
17831{
17832 int ret = 0;
17833 struct sound_focus_param soundFocusData;
17834 int port_id, copp_idx;
17835
17836 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17837 "Sound Focus Audio Tx ", &port_id);
17838 if (ret) {
17839 pr_err("%s: Error in deriving port id, err=%d\n",
17840 __func__, ret);
17841
17842 ret = -EINVAL;
17843 goto done;
17844 }
17845
17846 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17847 &copp_idx);
17848 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017849 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017850 __func__, port_id);
17851
17852 ret = -EINVAL;
17853 goto done;
17854 }
17855
17856 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17857 if (ret) {
17858 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17859 __func__, ret);
17860
17861 ret = -EINVAL;
17862 goto done;
17863 }
17864
17865 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17866 sizeof(struct sound_focus_param));
17867
17868done:
17869 return ret;
17870}
17871
17872static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17873 struct snd_ctl_elem_value *ucontrol)
17874{
17875 int ret = 0;
17876 struct source_tracking_param sourceTrackingData;
17877 int port_id, copp_idx;
17878
17879 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17880 "Source Tracking Audio Tx ", &port_id);
17881 if (ret) {
17882 pr_err("%s: Error in deriving port id, err=%d\n",
17883 __func__, ret);
17884
17885 ret = -EINVAL;
17886 goto done;
17887 }
17888
17889 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17890 &copp_idx);
17891 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017892 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017893 __func__, port_id);
17894
17895 ret = -EINVAL;
17896 goto done;
17897 }
17898
17899 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17900 if (ret) {
17901 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17902 __func__, ret);
17903
17904 ret = -EINVAL;
17905 goto done;
17906 }
17907
17908 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17909 sizeof(struct source_tracking_param));
17910
17911done:
17912 return ret;
17913}
17914
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017915static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
17916 struct snd_ctl_elem_info *uinfo)
17917{
17918 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17919 uinfo->count = sizeof(struct doa_tracking_mon_param);
17920
17921 return 0;
17922}
17923
17924static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
17925 struct snd_ctl_elem_value *ucontrol)
17926{
17927 int ret = 0;
17928 struct doa_tracking_mon_param doa_tracking_data;
17929 int port_id, copp_idx;
17930
17931 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
17932 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17933 "Doa Tracking Monitor Listen ", &port_id);
17934 if (ret) {
17935 pr_err("%s: Error in deriving port id, err=%d\n",
17936 __func__, ret);
17937 ret = -EINVAL;
17938 goto done;
17939 }
17940
17941 /*
17942 * If copp id exists for given port id, query adm to get doa data.
17943 * Else query afe for doa tracking params.
17944 * This is to support in cases where LSM directly connects to
17945 * AFE for FFNS.
17946 */
17947 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17948 &copp_idx);
17949 if (!ret)
17950 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
17951 &doa_tracking_data);
17952 else
17953 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
17954
17955 if (ret) {
17956 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
17957 __func__, ret);
17958 ret = -EINVAL;
17959 goto done;
17960 }
17961
17962 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
17963 sizeof(struct doa_tracking_mon_param));
17964done:
17965 return ret;
17966}
17967
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017968static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17969 {
17970 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17971 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17972 .name = "Sound Focus Voice Tx SLIMBUS_0",
17973 .info = msm_sound_focus_info,
17974 .get = msm_voice_sound_focus_get,
17975 .put = msm_voice_sound_focus_put,
17976 },
17977 {
17978 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17979 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17980 .name = "Source Tracking Voice Tx SLIMBUS_0",
17981 .info = msm_source_tracking_info,
17982 .get = msm_voice_source_tracking_get,
17983 },
17984 {
17985 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17986 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17987 .name = "Sound Focus Audio Tx SLIMBUS_0",
17988 .info = msm_sound_focus_info,
17989 .get = msm_audio_sound_focus_get,
17990 .put = msm_audio_sound_focus_put,
17991 },
17992 {
17993 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17994 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17995 .name = "Source Tracking Audio Tx SLIMBUS_0",
17996 .info = msm_source_tracking_info,
17997 .get = msm_audio_source_tracking_get,
17998 },
17999 {
18000 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18001 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18002 .name = "Sound Focus Voice Tx TERT_MI2S",
18003 .info = msm_sound_focus_info,
18004 .get = msm_voice_sound_focus_get,
18005 .put = msm_voice_sound_focus_put,
18006 },
18007 {
18008 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18009 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18010 .name = "Source Tracking Voice Tx TERT_MI2S",
18011 .info = msm_source_tracking_info,
18012 .get = msm_voice_source_tracking_get,
18013 },
18014 {
18015 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18016 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18017 .name = "Sound Focus Audio Tx TERT_MI2S",
18018 .info = msm_sound_focus_info,
18019 .get = msm_audio_sound_focus_get,
18020 .put = msm_audio_sound_focus_put,
18021 },
18022 {
18023 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18024 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18025 .name = "Source Tracking Audio Tx TERT_MI2S",
18026 .info = msm_source_tracking_info,
18027 .get = msm_audio_source_tracking_get,
18028 },
18029 {
18030 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18031 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18032 .name = "Sound Focus Voice Tx INT3_MI2S",
18033 .info = msm_sound_focus_info,
18034 .get = msm_voice_sound_focus_get,
18035 .put = msm_voice_sound_focus_put,
18036 },
18037 {
18038 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18039 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18040 .name = "Source Tracking Voice Tx INT3_MI2S",
18041 .info = msm_source_tracking_info,
18042 .get = msm_voice_source_tracking_get,
18043 },
18044 {
18045 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18046 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18047 .name = "Sound Focus Audio Tx INT3_MI2S",
18048 .info = msm_sound_focus_info,
18049 .get = msm_audio_sound_focus_get,
18050 .put = msm_audio_sound_focus_put,
18051 },
18052 {
18053 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18054 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18055 .name = "Source Tracking Audio Tx INT3_MI2S",
18056 .info = msm_source_tracking_info,
18057 .get = msm_audio_source_tracking_get,
18058 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018059 {
18060 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18061 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18062 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
18063 .info = msm_sound_focus_info,
18064 .get = msm_voice_sound_focus_get,
18065 .put = msm_voice_sound_focus_put,
18066 },
18067 {
18068 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18069 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18070 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
18071 .info = msm_source_tracking_info,
18072 .get = msm_voice_source_tracking_get,
18073 },
18074 {
18075 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18076 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18077 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
18078 .info = msm_sound_focus_info,
18079 .get = msm_audio_sound_focus_get,
18080 .put = msm_audio_sound_focus_put,
18081 },
18082 {
18083 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18084 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18085 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
18086 .info = msm_source_tracking_info,
18087 .get = msm_audio_source_tracking_get,
18088 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018089 {
18090 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18091 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18092 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
18093 .info = msm_sound_focus_info,
18094 .get = msm_voice_sound_focus_get,
18095 .put = msm_voice_sound_focus_put,
18096 },
18097 {
18098 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18099 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18100 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
18101 .info = msm_source_tracking_info,
18102 .get = msm_voice_source_tracking_get,
18103 },
18104 {
18105 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18106 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18107 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
18108 .info = msm_sound_focus_info,
18109 .get = msm_audio_sound_focus_get,
18110 .put = msm_audio_sound_focus_put,
18111 },
18112 {
18113 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18114 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18115 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
18116 .info = msm_source_tracking_info,
18117 .get = msm_audio_source_tracking_get,
18118 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018119 {
18120 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18121 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18122 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
18123 .info = msm_sound_focus_info,
18124 .get = msm_voice_sound_focus_get,
18125 .put = msm_voice_sound_focus_put,
18126 },
18127 {
18128 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18129 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18130 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
18131 .info = msm_source_tracking_info,
18132 .get = msm_voice_source_tracking_get,
18133 },
18134 {
18135 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18136 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18137 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
18138 .info = msm_sound_focus_info,
18139 .get = msm_audio_sound_focus_get,
18140 .put = msm_audio_sound_focus_put,
18141 },
18142 {
18143 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18144 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18145 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
18146 .info = msm_source_tracking_info,
18147 .get = msm_audio_source_tracking_get,
18148 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018149 {
18150 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18151 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18152 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
18153 .info = msm_doa_tracking_mon_info,
18154 .get = msm_doa_tracking_mon_get,
18155 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018156};
18157
18158static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
18159 struct snd_ctl_elem_value *ucontrol)
18160{
18161 int ret = 0;
18162 int item;
18163 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18164
18165 pr_debug("%s item is %d\n", __func__,
18166 ucontrol->value.enumerated.item[0]);
18167 mutex_lock(&routing_lock);
18168 item = ucontrol->value.enumerated.item[0];
18169 if (item < e->items) {
18170 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18171 __func__, e->shift_l, e->values[item]);
18172 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18173 e->values[item] < MSM_BACKEND_DAI_MAX)
18174 /* Enable feedback TX path */
18175 ret = afe_spk_prot_feed_back_cfg(
18176 msm_bedais[e->values[item]].port_id,
18177 msm_bedais[e->shift_l].port_id, 1, 0, 1);
18178 else {
18179 pr_debug("%s values are out of range item %d\n",
18180 __func__, e->values[item]);
18181 /* Disable feedback TX path */
18182 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18183 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
18184 else
18185 ret = -EINVAL;
18186 }
18187 } else {
18188 pr_err("%s item value is out of range item\n", __func__);
18189 ret = -EINVAL;
18190 }
18191 mutex_unlock(&routing_lock);
18192 return ret;
18193}
18194
18195static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
18196 struct snd_ctl_elem_value *ucontrol)
18197{
18198 int ret = 0;
18199 int item;
18200 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18201
18202 pr_debug("%s item is %d\n", __func__,
18203 ucontrol->value.enumerated.item[0]);
18204 mutex_lock(&routing_lock);
18205 item = ucontrol->value.enumerated.item[0];
18206 if (item < e->items) {
18207 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18208 __func__, e->shift_l, e->values[item]);
18209 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18210 e->values[item] < MSM_BACKEND_DAI_MAX)
18211 /* Enable feedback TX path */
18212 ret = afe_spk_prot_feed_back_cfg(
18213 msm_bedais[e->values[item]].port_id,
18214 msm_bedais[e->shift_l].port_id,
18215 1, 1, 1);
18216 else {
18217 pr_debug("%s values are out of range item %d\n",
18218 __func__, e->values[item]);
18219 /* Disable feedback TX path */
18220 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18221 ret = afe_spk_prot_feed_back_cfg(0,
18222 0, 0, 0, 0);
18223 else
18224 ret = -EINVAL;
18225 }
18226 } else {
18227 pr_err("%s item value is out of range item\n", __func__);
18228 ret = -EINVAL;
18229 }
18230 mutex_unlock(&routing_lock);
18231 return ret;
18232}
18233
18234static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
18235 struct snd_ctl_elem_value *ucontrol)
18236{
18237 pr_debug("%s\n", __func__);
18238 return 0;
18239}
18240
18241static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
18242 struct snd_ctl_elem_value *ucontrol)
18243{
18244 pr_debug("%s\n", __func__);
18245 ucontrol->value.enumerated.item[0] = 0;
18246 return 0;
18247}
18248
18249static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
18250 "ZERO", "SLIM4_TX"
18251};
18252
18253static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
18254 "ZERO", "SLIM4_TX"
18255};
18256
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018257static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
18258 "ZERO", "WSA_CDC_DMA_TX_0"
18259};
18260
18261static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
18262 "ZERO", "WSA_CDC_DMA_TX_0"
18263};
18264
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018265static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
18266 "ZERO", "SENARY_TX"
18267};
18268
18269static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
18270 "ZERO", "INT5_MI2S_TX"
18271};
18272
18273static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
18274 "ZERO", "INT5_MI2S_TX"
18275};
18276
Josh Kirschea69fed2018-12-11 16:15:08 -080018277static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018278 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18279};
18280
Josh Kirschea69fed2018-12-11 16:15:08 -080018281static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018282 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18283};
18284
Josh Kirschea69fed2018-12-11 16:15:08 -080018285static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018286 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18287};
18288
Josh Kirschea69fed2018-12-11 16:15:08 -080018289static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018290 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18291};
18292
18293
Josh Kirschea69fed2018-12-11 16:15:08 -080018294static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018295 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18296};
18297
Josh Kirschea69fed2018-12-11 16:15:08 -080018298static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018299 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18300};
18301
Josh Kirschea69fed2018-12-11 16:15:08 -080018302static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018303 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18304};
18305
18306static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18307 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18308 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18309 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18310
18311static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18312 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18313 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18314 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18315
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018316static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18317 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18318 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18319 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18320
18321static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18322 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18323 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18324 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18325
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018326static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18327 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18328 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18329 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18330
18331static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18332 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18333 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18334 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18335 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18336
18337static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18338 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18339 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18340 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18341 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18342
18343static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18344 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18345 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18346 spkr_prot_put_vi_lch_port);
18347
18348static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18349 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18350 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18351 spkr_prot_put_vi_rch_port);
18352
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018353static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18354 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18355 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18356 spkr_prot_put_vi_lch_port);
18357
18358static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18359 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18360 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18361 spkr_prot_put_vi_rch_port);
18362
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018363static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18364 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18365 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18366 spkr_prot_put_vi_lch_port);
18367
18368static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18369 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18370 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18371 spkr_prot_put_vi_lch_port);
18372
18373static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18374 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18375 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18376 spkr_prot_put_vi_rch_port);
18377
18378static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18379 /* Frontend AIF */
18380 /* Widget name equals to Front-End DAI name<Need confirmation>,
18381 * Stream name must contains substring of front-end dai name
18382 */
18383 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18384 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18385 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18386 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18387 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18388 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18389 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18390 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18391 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18392 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18393 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18394 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18395 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18396 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18397 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18398 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18399 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018400 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018401 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018402 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18403 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18404 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18405 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18406 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18407 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18408 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18409 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18410 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018411 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018412 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018413 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18414 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18415 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18416 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018417 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018418 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018419 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18420 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018421 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18422 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18423 "VoiceMMode1 Playback", 0, 0, 0, 0),
18424 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18425 "VoiceMMode1 Capture", 0, 0, 0, 0),
18426 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18427 "VoiceMMode2 Playback", 0, 0, 0, 0),
18428 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18429 "VoiceMMode2 Capture", 0, 0, 0, 0),
18430 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18431 0, 0, 0, 0),
18432 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18433 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018434 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18435 0, 0, 0, 0),
18436 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18437 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018438 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18439 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018440 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18441 0, 0, 0, 0),
18442 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18443 0, 0, 0, 0),
18444 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18445 0, 0, 0, 0),
18446 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18447 0, 0, 0, 0),
18448 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18449 0, 0, 0, 0),
18450 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18451 0, 0, 0, 0),
18452 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18453 0, 0, 0, 0),
18454 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18455 0, 0, 0, 0),
18456 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18457 0, 0, 0, 0),
18458 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18459 0, 0, 0, 0),
18460 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18461 0, 0, 0, 0),
18462 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18463 0, 0, 0, 0),
18464 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18465 0, 0, 0, 0),
18466 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18467 0, 0, 0, 0),
18468 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18469 0, 0, 0, 0),
18470 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18471 0, 0, 0, 0),
18472 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18473 0, 0, 0, 0),
18474 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18475 0, 0, 0, 0),
18476 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18477 0, 0, 0, 0),
18478 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18479 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18480 0, 0, 0, 0),
18481 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18482 "INT0 MI2S_RX Hostless Playback",
18483 0, 0, 0, 0),
18484 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18485 "INT4 MI2S_RX Hostless Playback",
18486 0, 0, 0, 0),
18487 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18488 "Primary MI2S_RX Hostless Playback",
18489 0, 0, 0, 0),
18490 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18491 "Secondary MI2S_RX Hostless Playback",
18492 0, 0, 0, 0),
18493 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18494 "Tertiary MI2S_RX Hostless Playback",
18495 0, 0, 0, 0),
18496 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18497 "Quaternary MI2S_RX Hostless Playback",
18498 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018499 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18500 "Quinary MI2S_RX Hostless Playback",
18501 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018502
18503 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18504 0, 0, 0, 0),
18505 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18506 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018507 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18508 0, 0, 0, 0),
18509 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18510 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018511 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18512 0, 0, 0, 0),
18513 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18514 "INT3 MI2S_TX Hostless Capture",
18515 0, 0, 0, 0),
18516 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18517 "Tertiary MI2S_TX Hostless Capture",
18518 0, 0, 0, 0),
18519 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18520 "Secondary MI2S_TX Hostless Capture",
18521 0, 0, 0, 0),
18522 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18523 "Primary MI2S_TX Hostless Capture",
18524 0, 0, 0, 0),
18525 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18526 0, 0, 0, 0),
18527 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18528 0, 0, 0, 0),
18529 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18530 "Quaternary MI2S_TX Hostless Capture",
18531 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018532 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18533 "Quinary MI2S_TX Hostless Capture",
18534 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018535
18536 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18537 "Primary TDM0 Hostless Playback",
18538 0, 0, 0, 0),
18539 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18540 "Primary TDM0 Hostless Capture",
18541 0, 0, 0, 0),
18542 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18543 "Primary TDM1 Hostless Playback",
18544 0, 0, 0, 0),
18545 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18546 "Primary TDM1 Hostless Capture",
18547 0, 0, 0, 0),
18548 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18549 "Primary TDM2 Hostless Playback",
18550 0, 0, 0, 0),
18551 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18552 "Primary TDM2 Hostless Capture",
18553 0, 0, 0, 0),
18554 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18555 "Primary TDM3 Hostless Playback",
18556 0, 0, 0, 0),
18557 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18558 "Primary TDM3 Hostless Capture",
18559 0, 0, 0, 0),
18560 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18561 "Primary TDM4 Hostless Playback",
18562 0, 0, 0, 0),
18563 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18564 "Primary TDM4 Hostless Capture",
18565 0, 0, 0, 0),
18566 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18567 "Primary TDM5 Hostless Playback",
18568 0, 0, 0, 0),
18569 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18570 "Primary TDM5 Hostless Capture",
18571 0, 0, 0, 0),
18572 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18573 "Primary TDM6 Hostless Playback",
18574 0, 0, 0, 0),
18575 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18576 "Primary TDM6 Hostless Capture",
18577 0, 0, 0, 0),
18578 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18579 "Primary TDM7 Hostless Playback",
18580 0, 0, 0, 0),
18581 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18582 "Primary TDM7 Hostless Capture",
18583 0, 0, 0, 0),
18584 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18585 "Secondary TDM0 Hostless Playback",
18586 0, 0, 0, 0),
18587 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18588 "Secondary TDM0 Hostless Capture",
18589 0, 0, 0, 0),
18590 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18591 "Secondary TDM1 Hostless Playback",
18592 0, 0, 0, 0),
18593 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18594 "Secondary TDM1 Hostless Capture",
18595 0, 0, 0, 0),
18596 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18597 "Secondary TDM2 Hostless Playback",
18598 0, 0, 0, 0),
18599 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18600 "Secondary TDM2 Hostless Capture",
18601 0, 0, 0, 0),
18602 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18603 "Secondary TDM3 Hostless Playback",
18604 0, 0, 0, 0),
18605 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18606 "Secondary TDM3 Hostless Capture",
18607 0, 0, 0, 0),
18608 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18609 "Secondary TDM4 Hostless Playback",
18610 0, 0, 0, 0),
18611 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18612 "Secondary TDM4 Hostless Capture",
18613 0, 0, 0, 0),
18614 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18615 "Secondary TDM5 Hostless Playback",
18616 0, 0, 0, 0),
18617 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18618 "Secondary TDM5 Hostless Capture",
18619 0, 0, 0, 0),
18620 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18621 "Secondary TDM6 Hostless Playback",
18622 0, 0, 0, 0),
18623 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18624 "Secondary TDM6 Hostless Capture",
18625 0, 0, 0, 0),
18626 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18627 "Secondary TDM7 Hostless Playback",
18628 0, 0, 0, 0),
18629 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18630 "Secondary TDM7 Hostless Capture",
18631 0, 0, 0, 0),
18632 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18633 "Tertiary TDM0 Hostless Playback",
18634 0, 0, 0, 0),
18635 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18636 "Tertiary TDM0 Hostless Capture",
18637 0, 0, 0, 0),
18638 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18639 "Tertiary TDM1 Hostless Playback",
18640 0, 0, 0, 0),
18641 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18642 "Tertiary TDM1 Hostless Capture",
18643 0, 0, 0, 0),
18644 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18645 "Tertiary TDM2 Hostless Playback",
18646 0, 0, 0, 0),
18647 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18648 "Tertiary TDM2 Hostless Capture",
18649 0, 0, 0, 0),
18650 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18651 "Tertiary TDM3 Hostless Playback",
18652 0, 0, 0, 0),
18653 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18654 "Tertiary TDM3 Hostless Capture",
18655 0, 0, 0, 0),
18656 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18657 "Tertiary TDM4 Hostless Playback",
18658 0, 0, 0, 0),
18659 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18660 "Tertiary TDM4 Hostless Capture",
18661 0, 0, 0, 0),
18662 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
18663 "Tertiary TDM5 Hostless Playback",
18664 0, 0, 0, 0),
18665 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
18666 "Tertiary TDM5 Hostless Capture",
18667 0, 0, 0, 0),
18668 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
18669 "Tertiary TDM6 Hostless Playback",
18670 0, 0, 0, 0),
18671 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
18672 "Tertiary TDM6 Hostless Capture",
18673 0, 0, 0, 0),
18674 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
18675 "Tertiary TDM7 Hostless Playback",
18676 0, 0, 0, 0),
18677 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
18678 "Tertiary TDM7 Hostless Capture",
18679 0, 0, 0, 0),
18680 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
18681 "Quaternary TDM0 Hostless Playback",
18682 0, 0, 0, 0),
18683 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
18684 "Quaternary TDM0 Hostless Capture",
18685 0, 0, 0, 0),
18686 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
18687 "Quaternary TDM1 Hostless Playback",
18688 0, 0, 0, 0),
18689 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
18690 "Quaternary TDM1 Hostless Capture",
18691 0, 0, 0, 0),
18692 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
18693 "Quaternary TDM2 Hostless Playback",
18694 0, 0, 0, 0),
18695 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
18696 "Quaternary TDM2 Hostless Capture",
18697 0, 0, 0, 0),
18698 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
18699 "Quaternary TDM3 Hostless Playback",
18700 0, 0, 0, 0),
18701 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
18702 "Quaternary TDM3 Hostless Capture",
18703 0, 0, 0, 0),
18704 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
18705 "Quaternary TDM4 Hostless Playback",
18706 0, 0, 0, 0),
18707 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
18708 "Quaternary TDM4 Hostless Capture",
18709 0, 0, 0, 0),
18710 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
18711 "Quaternary TDM5 Hostless Playback",
18712 0, 0, 0, 0),
18713 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
18714 "Quaternary TDM5 Hostless Capture",
18715 0, 0, 0, 0),
18716 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
18717 "Quaternary TDM6 Hostless Playback",
18718 0, 0, 0, 0),
18719 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
18720 "Quaternary TDM6 Hostless Capture",
18721 0, 0, 0, 0),
18722 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
18723 "Quaternary TDM7 Hostless Playback",
18724 0, 0, 0, 0),
18725 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
18726 "Quaternary TDM7 Hostless Capture",
18727 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018728 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
18729 "Quinary TDM0 Hostless Playback",
18730 0, 0, 0, 0),
18731 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
18732 "Quinary TDM0 Hostless Capture",
18733 0, 0, 0, 0),
18734 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
18735 "Quinary TDM1 Hostless Playback",
18736 0, 0, 0, 0),
18737 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
18738 "Quinary TDM1 Hostless Capture",
18739 0, 0, 0, 0),
18740 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
18741 "Quinary TDM2 Hostless Playback",
18742 0, 0, 0, 0),
18743 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
18744 "Quinary TDM2 Hostless Capture",
18745 0, 0, 0, 0),
18746 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
18747 "Quinary TDM3 Hostless Playback",
18748 0, 0, 0, 0),
18749 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
18750 "Quinary TDM3 Hostless Capture",
18751 0, 0, 0, 0),
18752 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
18753 "Quinary TDM4 Hostless Playback",
18754 0, 0, 0, 0),
18755 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
18756 "Quinary TDM4 Hostless Capture",
18757 0, 0, 0, 0),
18758 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
18759 "Quinary TDM5 Hostless Playback",
18760 0, 0, 0, 0),
18761 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
18762 "Quinary TDM5 Hostless Capture",
18763 0, 0, 0, 0),
18764 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
18765 "Quinary TDM6 Hostless Playback",
18766 0, 0, 0, 0),
18767 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
18768 "Quinary TDM6 Hostless Capture",
18769 0, 0, 0, 0),
18770 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
18771 "Quinary TDM7 Hostless Playback",
18772 0, 0, 0, 0),
18773 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
18774 "Quinary TDM7 Hostless Capture",
18775 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018776
18777 /* LSM */
18778 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
18779 0, 0, 0, 0),
18780 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
18781 0, 0, 0, 0),
18782 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
18783 0, 0, 0, 0),
18784 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
18785 0, 0, 0, 0),
18786 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
18787 0, 0, 0, 0),
18788 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
18789 0, 0, 0, 0),
18790 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
18791 0, 0, 0, 0),
18792 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
18793 0, 0, 0, 0),
18794 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
18795 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
18796 /* Backend AIF */
18797 /* Stream name equals to backend dai link stream name */
18798 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
18799 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
18800 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020018801 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
18802 0, 0, 0, 0),
18803 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
18804 0, 0, 0, 0),
18805 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
18806 0, 0, 0, 0),
18807 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
18808 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018809 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
18810 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
18811 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
18812 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
18813 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
18814 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018815 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
18816 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018817 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
18818 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
18819 0, 0, 0, 0),
18820 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
18821 0, 0, 0, 0),
18822 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
18823 0, 0, 0, 0),
18824 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
18825 "Secondary MI2S Playback SD1",
18826 0, 0, 0, 0),
18827 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
18828 0, 0, 0, 0),
18829 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
18830 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018831 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
18832 0, 0, 0, 0),
18833 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
18834 0, 0, 0, 0),
18835 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
18836 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018837 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
18838 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018839 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
18840 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018841 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
18842 0, 0, 0, 0),
18843 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
18844 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
18845 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
18846 0, 0, 0, 0),
18847 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
18848 0, 0, 0, 0),
18849 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
18850 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018851 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
18852 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018853 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
18854 0, 0, 0, 0),
18855 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
18856 0, 0, 0, 0),
18857 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
18858 0, 0, 0, 0),
18859 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
18860 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
18861 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
18862 0, 0, 0, 0),
18863 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
18864 0, 0, 0, 0),
18865 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
18866 0, 0, 0, 0),
18867 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
18868 0, 0, 0, 0),
18869 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
18870 0, 0, 0, 0),
18871 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
18872 0, 0, 0, 0),
18873 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
18874 0, 0, 0, 0),
18875 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18876 0, 0, 0, 0),
18877 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18878 0, 0, 0, 0),
18879 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18880 0, 0, 0, 0),
18881 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18882 0, 0, 0, 0),
18883 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18884 0, 0, 0, 0),
18885 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18886 0, 0, 0, 0),
18887 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18888 0, 0, 0, 0),
18889 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18890 0, 0, 0, 0),
18891 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18892 0, 0, 0, 0),
18893 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18894 0, 0, 0, 0),
18895 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18896 0, 0, 0, 0),
18897 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18898 0, 0, 0, 0),
18899 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18900 0, 0, 0, 0),
18901 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18902 0, 0, 0, 0),
18903 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18904 0, 0, 0, 0),
18905 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18906 0, 0, 0, 0),
18907 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18908 0, 0, 0, 0),
18909 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18910 0, 0, 0, 0),
18911 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18912 0, 0, 0, 0),
18913 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18914 0, 0, 0, 0),
18915 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18916 0, 0, 0, 0),
18917 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18918 0, 0, 0, 0),
18919 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18920 0, 0, 0, 0),
18921 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18922 0, 0, 0, 0),
18923 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18924 0, 0, 0, 0),
18925 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18926 0, 0, 0, 0),
18927 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18928 0, 0, 0, 0),
18929 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18930 0, 0, 0, 0),
18931 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18932 0, 0, 0, 0),
18933 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18934 0, 0, 0, 0),
18935 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18936 0, 0, 0, 0),
18937 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18938 0, 0, 0, 0),
18939 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18940 0, 0, 0, 0),
18941 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18942 0, 0, 0, 0),
18943 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18944 0, 0, 0, 0),
18945 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18946 0, 0, 0, 0),
18947 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18948 0, 0, 0, 0),
18949 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18950 0, 0, 0, 0),
18951 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18952 0, 0, 0, 0),
18953 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18954 0, 0, 0, 0),
18955 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18956 0, 0, 0, 0),
18957 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18958 0, 0, 0, 0),
18959 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18960 0, 0, 0, 0),
18961 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18962 0, 0, 0, 0),
18963 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18964 0, 0, 0, 0),
18965 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18966 0, 0, 0, 0),
18967 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18968 0, 0, 0, 0),
18969 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18970 0, 0, 0, 0),
18971 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18972 0, 0, 0, 0),
18973 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18974 0, 0, 0, 0),
18975 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18976 0, 0, 0, 0),
18977 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18978 0, 0, 0, 0),
18979 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18980 0, 0, 0, 0),
18981 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18982 0, 0, 0, 0),
18983 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18984 0, 0, 0, 0),
18985 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18986 0, 0, 0, 0),
18987 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18988 0, 0, 0, 0),
18989 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18990 0, 0, 0, 0),
18991 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18992 0, 0, 0, 0),
18993 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18994 0, 0, 0, 0),
18995 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18996 0, 0, 0, 0),
18997 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18998 0, 0, 0, 0),
18999 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
19000 0, 0, 0, 0),
19001 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
19002 0, 0, 0, 0),
19003 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
19004 0, 0, 0, 0),
19005 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
19006 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019007 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
19008 0, 0, 0, 0),
19009 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
19010 0, 0, 0, 0),
19011 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
19012 0, 0, 0, 0),
19013 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
19014 0, 0, 0, 0),
19015 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
19016 0, 0, 0, 0),
19017 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
19018 0, 0, 0, 0),
19019 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
19020 0, 0, 0, 0),
19021 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
19022 0, 0, 0, 0),
19023 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
19024 0, 0, 0, 0),
19025 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
19026 0, 0, 0, 0),
19027 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
19028 0, 0, 0, 0),
19029 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
19030 0, 0, 0, 0),
19031 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
19032 0, 0, 0, 0),
19033 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
19034 0, 0, 0, 0),
19035 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
19036 0, 0, 0, 0),
19037 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
19038 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019039 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
19040 0, 0, 0, 0),
19041 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
19042 0, 0, 0, 0),
19043 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
19044 0, 0, 0, 0),
19045 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
19046 0, 0, 0, 0),
19047 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
19048 0, 0, 0, 0),
19049 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
19050 0, 0, 0, 0),
19051 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
19052 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019053 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
19054 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019055 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
19056 0, 0, 0, 0),
19057 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
19058 0, 0, 0, 0),
19059 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
19060 0, 0, 0, 0),
19061 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
19062 0, 0, 0, 0),
19063 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
19064 0, 0, 0, 0),
19065 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
19066 0, 0, 0, 0),
19067 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
19068 0, 0, 0, 0),
19069 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
19070 0, 0, 0, 0),
19071 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
19072 0, 0, 0, 0),
19073 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
19074 0, 0, 0, 0),
19075 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
19076 0, 0, 0, 0),
19077 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
19078 0, 0, 0, 0),
19079 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
19080 0, 0, 0, 0),
19081 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
19082 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019083 /* incall */
19084 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
19085 0, 0, 0, 0),
19086 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
19087 0, 0, 0, 0),
19088 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
19089 0, 0, 0, 0),
19090 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
19091 0, 0, 0, 0),
19092 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
19093 0, 0, 0, 0),
19094 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
19095 0, 0, 0, 0),
19096 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
19097 0, 0, 0, 0),
19098 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
19099 0, 0, 0, 0),
19100 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
19101
19102 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
19103 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
19104 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
19105 0, 0, 0, 0),
19106 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
19107 0, 0, 0, 0),
19108 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
19109 0, 0, 0, 0),
19110 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
19111 0, 0, 0, 0),
19112 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
19113 0, 0, 0, 0),
19114 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
19115 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019116 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
19117 0, 0, 0, 0),
19118 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
19119 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019120 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
19121 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
19122 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
19123 0, 0, 0, 0),
19124 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
19125 0, 0, 0, 0),
19126 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
19127 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
19128 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
19129 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
19130 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
19131 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
19132 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
19133 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
19134 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
19135 /* In- call recording */
19136 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
19137 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053019138 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
19139 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019140 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
19141 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
19142
19143 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
19144 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019145 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
19146 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019147 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
19148 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
19149
19150 /* Switch Definitions */
19151 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
19152 &slim_fm_switch_mixer_controls),
19153 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
19154 &slim1_fm_switch_mixer_controls),
19155 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
19156 &slim3_fm_switch_mixer_controls),
19157 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
19158 &slim4_fm_switch_mixer_controls),
19159 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
19160 &slim6_fm_switch_mixer_controls),
19161 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19162 &pcm_rx_switch_mixer_controls),
19163 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19164 &int0_mi2s_rx_switch_mixer_controls),
19165 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19166 &int4_mi2s_rx_switch_mixer_controls),
19167 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19168 &pri_mi2s_rx_switch_mixer_controls),
19169 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19170 &sec_mi2s_rx_switch_mixer_controls),
19171 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19172 &tert_mi2s_rx_switch_mixer_controls),
19173 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19174 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053019175 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19176 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019177 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19178 &hfp_pri_aux_switch_mixer_controls),
19179 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19180 &hfp_aux_switch_mixer_controls),
19181 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
19182 &hfp_int_switch_mixer_controls),
19183 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19184 &hfp_slim7_switch_mixer_controls),
19185 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
19186 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080019187 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19188 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019189 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019190 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019191 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019192 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019193
19194 /* Mixer definitions */
19195 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19196 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
19197 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19198 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
19199 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19200 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
19201 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19202 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
19203 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19204 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
19205 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19206 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019207 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19208 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019209 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
19210 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
19211 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
19212 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019213 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
19214 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020019215 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19216 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
19217 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19218 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019219 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19220 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
19221 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19222 quaternary_mi2s_rx_mixer_controls,
19223 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
19224 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19225 tertiary_mi2s_rx_mixer_controls,
19226 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
19227 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19228 secondary_mi2s_rx_mixer_controls,
19229 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
19230 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19231 secondary_mi2s_rx2_mixer_controls,
19232 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
19233 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19234 primary_mi2s_rx_mixer_controls,
19235 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
19236 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19237 int0_mi2s_rx_mixer_controls,
19238 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
19239 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19240 int4_mi2s_rx_mixer_controls,
19241 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
19242 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19243 quinary_mi2s_rx_mixer_controls,
19244 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
19245 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19246 pri_tdm_rx_0_mixer_controls,
19247 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
19248 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19249 pri_tdm_rx_1_mixer_controls,
19250 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
19251 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19252 pri_tdm_rx_2_mixer_controls,
19253 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
19254 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19255 pri_tdm_rx_3_mixer_controls,
19256 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
19257 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19258 pri_tdm_tx_0_mixer_controls,
19259 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
19260 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19261 sec_tdm_rx_0_mixer_controls,
19262 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
19263 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19264 sec_tdm_rx_1_mixer_controls,
19265 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
19266 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19267 sec_tdm_rx_2_mixer_controls,
19268 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
19269 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19270 sec_tdm_rx_3_mixer_controls,
19271 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
19272 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19273 sec_tdm_tx_0_mixer_controls,
19274 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
19275 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19276 tert_tdm_rx_0_mixer_controls,
19277 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
19278 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19279 tert_tdm_tx_0_mixer_controls,
19280 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
19281 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19282 tert_tdm_rx_1_mixer_controls,
19283 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19284 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19285 tert_tdm_rx_2_mixer_controls,
19286 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19287 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19288 tert_tdm_rx_3_mixer_controls,
19289 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19290 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19291 tert_tdm_rx_4_mixer_controls,
19292 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19293 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19294 quat_tdm_rx_0_mixer_controls,
19295 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19296 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19297 quat_tdm_tx_0_mixer_controls,
19298 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19299 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19300 quat_tdm_rx_1_mixer_controls,
19301 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19302 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19303 quat_tdm_rx_2_mixer_controls,
19304 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19305 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19306 quat_tdm_rx_3_mixer_controls,
19307 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019308 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19309 quin_tdm_rx_0_mixer_controls,
19310 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19311 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19312 quin_tdm_tx_0_mixer_controls,
19313 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19314 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19315 quin_tdm_rx_1_mixer_controls,
19316 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19317 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19318 quin_tdm_rx_2_mixer_controls,
19319 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19320 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19321 quin_tdm_rx_3_mixer_controls,
19322 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019323 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19324 wsa_cdc_dma_rx_0_mixer_controls,
19325 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19326 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19327 wsa_cdc_dma_rx_1_mixer_controls,
19328 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019329 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19330 rx_cdc_dma_rx_0_mixer_controls,
19331 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19332 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19333 rx_cdc_dma_rx_1_mixer_controls,
19334 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19335 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19336 rx_cdc_dma_rx_2_mixer_controls,
19337 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19338 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19339 rx_cdc_dma_rx_3_mixer_controls,
19340 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19341 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19342 rx_cdc_dma_rx_4_mixer_controls,
19343 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19344 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19345 rx_cdc_dma_rx_5_mixer_controls,
19346 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19347 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19348 rx_cdc_dma_rx_6_mixer_controls,
19349 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19350 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19351 rx_cdc_dma_rx_7_mixer_controls,
19352 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019353 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19354 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19355 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19356 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19357 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19358 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19359 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19360 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19361 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19362 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19363 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19364 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19365 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19366 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19367 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19368 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019369 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19370 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019371 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19372 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019373 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19374 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19375 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19376 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19377 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19378 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19379 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19380 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019381 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19382 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019383 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19384 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019385 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19386 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19387 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19388 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019389 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19390 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19391 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19392 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19393 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19394 tert_auxpcm_rx_mixer_controls,
19395 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19396 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19397 quat_auxpcm_rx_mixer_controls,
19398 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019399 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19400 quin_auxpcm_rx_mixer_controls,
19401 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019402 /* incall */
19403 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19404 incall_music_delivery_mixer_controls,
19405 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19406 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19407 incall_music2_delivery_mixer_controls,
19408 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19409 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19410 slimbus_4_rx_mixer_controls,
19411 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19412 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19413 slimbus_6_rx_mixer_controls,
19414 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19415 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19416 usb_audio_rx_mixer_controls,
19417 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19418 /* Voice Mixer */
19419 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19420 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19421 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19422 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19423 SND_SOC_NOPM, 0, 0,
19424 sec_i2s_rx_voice_mixer_controls,
19425 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19426 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19427 SND_SOC_NOPM, 0, 0,
19428 sec_mi2s_rx_voice_mixer_controls,
19429 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19430 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19431 SND_SOC_NOPM, 0, 0,
19432 slimbus_rx_voice_mixer_controls,
19433 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19434 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19435 SND_SOC_NOPM, 0, 0,
19436 bt_sco_rx_voice_mixer_controls,
19437 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19438 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19439 SND_SOC_NOPM, 0, 0,
19440 afe_pcm_rx_voice_mixer_controls,
19441 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19442 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19443 SND_SOC_NOPM, 0, 0,
19444 aux_pcm_rx_voice_mixer_controls,
19445 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19446 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19447 SND_SOC_NOPM, 0, 0,
19448 sec_aux_pcm_rx_voice_mixer_controls,
19449 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19450 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19451 SND_SOC_NOPM, 0, 0,
19452 tert_aux_pcm_rx_voice_mixer_controls,
19453 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19454 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19455 SND_SOC_NOPM, 0, 0,
19456 quat_aux_pcm_rx_voice_mixer_controls,
19457 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019458 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19459 SND_SOC_NOPM, 0, 0,
19460 quin_aux_pcm_rx_voice_mixer_controls,
19461 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019462 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19463 SND_SOC_NOPM, 0, 0,
19464 hdmi_rx_voice_mixer_controls,
19465 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19466 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19467 SND_SOC_NOPM, 0, 0,
19468 mi2s_rx_voice_mixer_controls,
19469 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19470 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19471 SND_SOC_NOPM, 0, 0,
19472 pri_mi2s_rx_voice_mixer_controls,
19473 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19474 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19475 SND_SOC_NOPM, 0, 0,
19476 int0_mi2s_rx_voice_mixer_controls,
19477 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19478 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19479 SND_SOC_NOPM, 0, 0,
19480 int4_mi2s_rx_voice_mixer_controls,
19481 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19482 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19483 SND_SOC_NOPM, 0, 0,
19484 tert_mi2s_rx_voice_mixer_controls,
19485 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19486 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19487 SND_SOC_NOPM, 0, 0,
19488 quat_mi2s_rx_voice_mixer_controls,
19489 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19490 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19491 SND_SOC_NOPM, 0, 0,
19492 quin_mi2s_rx_voice_mixer_controls,
19493 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19494 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19495 SND_SOC_NOPM, 0, 0,
19496 quat_tdm_rx_2_voice_mixer_controls,
19497 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019498 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19499 SND_SOC_NOPM, 0, 0,
19500 wsa_cdc_dma_rx_0_voice_mixer_controls,
19501 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19502 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19503 SND_SOC_NOPM, 0, 0,
19504 rx_cdc_dma_rx_0_voice_mixer_controls,
19505 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019506 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19507 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19508 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019509 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19510 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19511 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19512 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19513 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19514 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19515 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19516 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19517 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19518 int_bt_a2dp_rx_mixer_controls,
19519 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19520 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19521 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19522 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19523 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19524 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19525 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19526 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19527 tx_voice2_stub_mixer_controls,
19528 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19529 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19530 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19531 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19532 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19533 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19534 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19535 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19536 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19537 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19538 SND_SOC_NOPM, 0, 0,
19539 slimbus_6_rx_voice_mixer_controls,
19540 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19541 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19542 slimbus_7_rx_voice_mixer_controls,
19543 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19544 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19545 slimbus_8_rx_voice_mixer_controls,
19546 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19547 /* port mixer */
19548 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19549 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19550 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19551 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19552 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19553 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19554 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19555 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19556 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19557 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19558 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19559 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19560 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19561 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19562 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019563 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19564 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19565 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019566 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19567 sbus_1_rx_port_mixer_controls,
19568 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19569 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19570 bt_sco_rx_port_mixer_controls,
19571 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19572 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19573 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19574 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19575 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19576 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19577 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19578 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19579 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19580 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019581 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019582 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19583 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019584 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19585 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19586 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19587 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19588 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19589 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19590 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19591 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19592 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19593 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19594 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19595 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19596 primary_mi2s_rx_port_mixer_controls,
19597 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19598 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19599 sec_mi2s_rx_port_mixer_controls,
19600 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19601 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19602 tert_mi2s_rx_port_mixer_controls,
19603 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19604 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19605 quat_mi2s_rx_port_mixer_controls,
19606 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019607 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19608 quin_mi2s_rx_port_mixer_controls,
19609 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019610 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19611 pri_tdm_rx_0_port_mixer_controls,
19612 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19613 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19614 pri_tdm_rx_1_port_mixer_controls,
19615 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19616 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19617 pri_tdm_rx_2_port_mixer_controls,
19618 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19619 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19620 pri_tdm_rx_3_port_mixer_controls,
19621 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19622 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19623 sec_tdm_rx_0_port_mixer_controls,
19624 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19625 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19626 sec_tdm_rx_1_port_mixer_controls,
19627 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19628 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19629 sec_tdm_rx_2_port_mixer_controls,
19630 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19631 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19632 sec_tdm_rx_3_port_mixer_controls,
19633 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070019634 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
19635 sec_tdm_rx_7_port_mixer_controls,
19636 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019637 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19638 tert_tdm_rx_0_port_mixer_controls,
19639 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19640 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19641 tert_tdm_rx_1_port_mixer_controls,
19642 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19643 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19644 tert_tdm_rx_2_port_mixer_controls,
19645 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19646 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19647 tert_tdm_rx_3_port_mixer_controls,
19648 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19649 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19650 quat_tdm_rx_0_port_mixer_controls,
19651 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19652 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19653 quat_tdm_rx_1_port_mixer_controls,
19654 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19655 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19656 quat_tdm_rx_2_port_mixer_controls,
19657 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19658 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19659 quat_tdm_rx_3_port_mixer_controls,
19660 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019661 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19662 quin_tdm_rx_0_port_mixer_controls,
19663 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
19664 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19665 quin_tdm_rx_1_port_mixer_controls,
19666 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
19667 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19668 quin_tdm_rx_2_port_mixer_controls,
19669 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
19670 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19671 quin_tdm_rx_3_port_mixer_controls,
19672 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019673 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19674 int0_mi2s_rx_port_mixer_controls,
19675 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
19676 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19677 int4_mi2s_rx_port_mixer_controls,
19678 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019679 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19680 wsa_cdc_dma_rx_0_port_mixer_controls,
19681 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
19682 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19683 rx_cdc_dma_rx_0_port_mixer_controls,
19684 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019685 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
19686 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
19687 ARRAY_SIZE(tx_qchat_mixer_controls)),
19688 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
19689 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
19690 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
19691 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
19692 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
19693 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080019694 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
19695 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
19696 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019697 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
19698 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
19699 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019700 /* lsm mixer definitions */
19701 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
19702 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
19703 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
19704 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
19705 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
19706 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
19707 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
19708 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
19709 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
19710 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
19711 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
19712 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
19713 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
19714 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
19715 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
19716 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
19717 /* Virtual Pins to force backends ON atm */
19718 SND_SOC_DAPM_OUTPUT("BE_OUT"),
19719 SND_SOC_DAPM_INPUT("BE_IN"),
19720
19721 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19722 &slim0_rx_vi_fb_lch_mux),
19723 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19724 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019725 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19726 &wsa_rx_0_vi_fb_lch_mux),
19727 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19728 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019729 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
19730 &mi2s_rx_vi_fb_mux),
19731 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
19732 &int4_mi2s_rx_vi_fb_mono_ch_mux),
19733 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
19734 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
19735
19736 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
19737 &voc_ext_ec_mux),
19738 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
19739 &ext_ec_ref_mux_ul1),
19740 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
19741 &ext_ec_ref_mux_ul2),
19742 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
19743 &ext_ec_ref_mux_ul3),
19744 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
19745 &ext_ec_ref_mux_ul4),
19746 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
19747 &ext_ec_ref_mux_ul5),
19748 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
19749 &ext_ec_ref_mux_ul6),
19750 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
19751 &ext_ec_ref_mux_ul8),
19752 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
19753 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019754 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
19755 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019756 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
19757 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019758 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
19759 &ext_ec_ref_mux_ul17),
19760 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
19761 &ext_ec_ref_mux_ul18),
19762 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
19763 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080019764 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
19765 &ext_ec_ref_mux_ul28),
19766 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
19767 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019768};
19769
19770static const struct snd_soc_dapm_route intercon[] = {
19771 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19772 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19773 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19774 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19775 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19776 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19777 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19778 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19779 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19780 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19781 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19782 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19783 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19784 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19785 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19786 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019787 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019788 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
19789
19790 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19791 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19792 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19793 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19794 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19795 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19796 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19797 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19798 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19799 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19800 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19801 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19802 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19803 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19804 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19805 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019806 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019807 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
19808
19809 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19810 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19811 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19812 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19813 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19814 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19815 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19816 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19817 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19818 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19819 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19820 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19821 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19822 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19823 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19824 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019825 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019826 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
19827
19828 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19829 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19830 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19831 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19832 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19833 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19834 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19835 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19836 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19837 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19838 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19839 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19840 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19841 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19842 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19843 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019844 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019845 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
19846
19847 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19848 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19849 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19850 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19851 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19852 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19853 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19854 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19855 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19856 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19857 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19858 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19859 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19860 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19861 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19862 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019863 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019864 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
19865
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019866 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19867 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19868 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19869 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19870 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19871 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19872 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19873 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19874 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19875 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19876 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19877 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19878 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19879 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19880 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19881 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019882 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019883 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
19884
19885 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19886 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19887 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19888 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19889 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19890 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19891 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19892 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19893 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19894 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19895 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19896 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19897 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19898 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19899 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19900 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019901 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019902 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19903
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019904 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19905 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19906 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19907 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19908 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19909 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19910 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19911 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19912 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19913 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19914 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19915 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19916 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19917 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19918 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19919 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019920 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019921 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19922
19923 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19924 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19925 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19926 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19927 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19928 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19929 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19930 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19931 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19932 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19933 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19934 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19935 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19936 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19937 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19938 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019939 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019940 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19941
19942 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19943 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19944 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19945 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19946 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19947 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19948 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19949 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19950 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19951 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19952 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19953 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19954 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19955 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19956 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19957 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019958 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019959 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19960
19961 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19962 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19963 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19964 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19965 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19966 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19967 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19968 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19969 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19970 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19971 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19972 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19973 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19974 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19975 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19976 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019977 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019978 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19979
19980 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19981 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19982 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19983 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19984 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19985 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19986 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19987 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19988 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19989 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19990 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19991 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19992 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19993 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19994 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19995 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019996 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019997 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19998
19999 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
20000 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
20001 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
20002 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
20003 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
20004 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
20005 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
20006 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
20007 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
20008 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
20009 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
20010 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
20011 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
20012 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
20013 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
20014 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020015 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020016 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
20017
20018 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
20019 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
20020 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
20021 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
20022 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
20023 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
20024 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
20025 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
20026 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
20027 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
20028 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
20029 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
20030 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
20031 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
20032 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
20033 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020034 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020035 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
20036
20037 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
20038 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
20039 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
20040 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
20041 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
20042 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
20043 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
20044 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
20045 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
20046 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
20047 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
20048 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
20049 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
20050 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
20051 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
20052 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020053 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020054 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
20055
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020056 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
20057 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
20058 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
20059 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
20060 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
20061 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
20062 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
20063 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
20064 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
20065 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
20066 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
20067 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
20068 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
20069 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
20070 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
20071 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020072 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020073 {"HDMI", NULL, "HDMI Mixer"},
20074
20075 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
20076 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
20077 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
20078 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
20079 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
20080 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
20081 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
20082 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
20083 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
20084 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
20085 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
20086 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
20087 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
20088 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
20089 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
20090 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020091 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020092 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
20093
Karthikeyan Mani57550082018-05-03 18:43:58 -070020094 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
20095 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
20096 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
20097 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
20098 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
20099 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
20100 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
20101 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
20102 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
20103 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
20104 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
20105 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
20106 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
20107 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
20108 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
20109 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020110 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070020111 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
20112
Ralf Herzc8701f72018-06-20 11:37:35 +020020113 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20114 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20115 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20116 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20117 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20118 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20119 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20120 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20121 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20122 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20123 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20124 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20125 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20126 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20127 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20128 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020129 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020130 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
20131
20132 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20133 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20134 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20135 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20136 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20137 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20138 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20139 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20140 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20141 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20142 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20143 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20144 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20145 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20146 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20147 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020148 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020149 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020150
20151 /* incall */
20152 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
20153 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
20154 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
20155 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
20156 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
20157 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20158 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20159 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20160 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20161 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
20162 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20163 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20164 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20165 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20166 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
20167
20168 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20169 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20170 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20171 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20172 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20173 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20174 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20175 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20176 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20177 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20178 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20179 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20180 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20181 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20182 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20183 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020184 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020185 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
20186
20187 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20188 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20189 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20190 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20191 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20192 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20193 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20194 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20195 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20196 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20197 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20198 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20199 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20200 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20201 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20202 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020203 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020204 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
20205
Surendar Karka3ef3d812018-09-28 18:52:35 +053020206 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20207 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20208 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20209 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20210 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20211 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20212 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20213 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20214 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20215 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20216 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20217 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20218 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20219 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20220 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20221 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20222 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
20223 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
20224
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020225 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20226 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20227 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20228 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20229 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20230 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20231 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20232 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20233 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20234 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20235 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20236 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20237 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20238 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20239 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20240 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020241 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020242 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
20243
20244 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20245 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20246 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20247 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20248 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20249 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20250 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
20251 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20252 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20253 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020254 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020255 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20256 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020257 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020258 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20259 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20260 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20261 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020262 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20263 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020264 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20265 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20266 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20267 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20268 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20269 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020270 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20271 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020272 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020273 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020274 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20275 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20276 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20277 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20278 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20279 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020280 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020281 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20282 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20283 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020284 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20285 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20286 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020287 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020288 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020289 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20290 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020291 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020292 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020293 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020294 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20295 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20296
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020297 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20298 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20299 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20300 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20301 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20302 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20303 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20304 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20305 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20306 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20307 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20308 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20309 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20310 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20311 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20312 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020313 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020314 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20315
20316 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20317 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20318 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20319 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20320 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20321 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20322 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20323 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20324 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20325 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20326 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20327 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20328 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20329 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20330 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020331 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020332 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20333
20334 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20335 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20336 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20337 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20338 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20339 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20340 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20341 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20342 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20343 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20344 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20345 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20346 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20347 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020348 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020349 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20350
20351 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20352 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20353 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20354 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20355 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20356 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20357 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20358 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20359 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20360 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20361 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20362 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20363 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20364 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020365 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020366 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20367
20368 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20369 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20370
20371 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20372 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20373
20374 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20375 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20376 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20377 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20378 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20379 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20380 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20381 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20382 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20383 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20384 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20385 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20386 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20387 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20388 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020389 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020390 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20391
20392 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20393 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20394 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20395 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20396 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20397 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20398 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20399 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20400 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20401 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20402 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20403 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20404 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20405 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20406 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20407 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20408
20409 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20410 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20411 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20412 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20413 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20414 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20415 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20416 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20417 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20418 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20419 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20420 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20421 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20422 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20423 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20424 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20425
20426 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20427 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20428 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20429 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20430 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20431 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20432 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20433 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20434 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20435 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20436 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20437 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20438 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20439 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20440 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20441 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20442 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20443 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20444
20445 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20446 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20447 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20448 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20449 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20450 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20451 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20452 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20453 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20454 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20455 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20456 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20457 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20458 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20459 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20460 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020461 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020462 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20463
20464 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20465 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20466 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20467 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20468 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20469 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20470 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20471 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20472 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20473 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20474 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20475 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20476 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20477 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20478 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20479 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020480 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020481 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20482
20483 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20484 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20485 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20486 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20487 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20488 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20489 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20490 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20491 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20492 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20493 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20494 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20495 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20496 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20497 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20498 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020499 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020500 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20501
20502 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20503 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20504 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20505 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20506 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20507 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20508 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20509 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20510 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20511 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20512 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20513 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20514 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20515 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20516 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20517 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020518 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020519 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20520
20521 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20522 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20523 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20524 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20525 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20526 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20527 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20528 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20529 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20530 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20531 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20532 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20533 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20534 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20535 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20536 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20537 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20538
20539 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20540 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20541 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20542 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20543 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20544 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20545 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20546 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20547 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20548 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20549 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20550 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20551 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20552 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20553 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20554 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020555 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020556 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20557
20558 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20559 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20560 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20561 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20562 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20563 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20564 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20565 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20566 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20567 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20568 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20569 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20570 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20571 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20572 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20573 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020574 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020575 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20576
20577 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20578 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20579 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20580 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20581 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20582 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20583 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20584 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20585 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20586 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20587 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20588 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20589 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20590 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20591 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20592 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020593 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020594 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20595
20596 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20597 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20598 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20599 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20600 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20601 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20602 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20603 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20604 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20605 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20606 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20607 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20608 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20609 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20610 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20611 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020612 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020613 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20614
20615 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20616 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20617 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20618 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20619 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20620 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20621 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20622 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20623 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20624 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20625 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20626 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20627 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20628 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20629 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20630 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20631 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20632
20633 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20634 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20635 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20636 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20637 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20638 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20639 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20640 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20641 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20642 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20643 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20644 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20645 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20646 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20647 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20648 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020649 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020650 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
20651
20652 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20653 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20654 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20655 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20656 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20657 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20658 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20659 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20660 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20661 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20662 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20663 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20664 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20665 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20666 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20667 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20668 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
20669
20670 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20671 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20672 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20673 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20674 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20675 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20676 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20677 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20678 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20679 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20680 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20681 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20682 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20683 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20684 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20685 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020686 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020687 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
20688
20689 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20690 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20691 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20692 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20693 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20694 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20695 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20696 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20697 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20698 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20699 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20700 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20701 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20702 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20703 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20704 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020705 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020706 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
20707
20708 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20709 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20710 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20711 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20712 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20713 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20714 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20715 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20716 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20717 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20718 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20719 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20720 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20721 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20722 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20723 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020724 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020725 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
20726
20727 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20728 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20729 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20730 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20731 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20732 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20733 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20734 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20735 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20736 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20737 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20738 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20739 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20740 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20741 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20742 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020743 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020744 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
20745
20746 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20747 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20748 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20749 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20750 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20751 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20752 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20753 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20754 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20755 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20756 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20757 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20758 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20759 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20760 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20761 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20762 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020763 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020764 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
20765
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020766 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20767 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20768 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20769 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20770 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20771 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20772 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20773 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20774 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20775 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20776 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20777 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20778 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20779 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20780 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20781 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20782 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
20783
20784 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20785 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20786 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20787 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20788 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20789 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20790 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20791 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20792 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20793 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20794 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20795 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20796 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20797 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20798 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20799 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20800 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020801 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020802 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
20803
20804 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20805 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20806 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20807 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20808 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20809 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20810 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20811 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20812 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20813 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20814 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20815 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20816 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20817 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20818 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20819 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20820 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020821 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020822 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
20823
20824 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20825 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20826 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20827 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20828 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20829 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20830 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20831 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20832 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20833 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20834 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20835 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20836 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20837 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20838 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20839 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20840 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020841 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020842 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
20843
Rohit Kumara5077932017-09-10 22:05:05 +053020844 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20845 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20846 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20847 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20848 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20849 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20850 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20851 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20852 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20853 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20854 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20855 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20856 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20857 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20858 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20859 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20860 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020861 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020862 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
20863
20864 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20865 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20866 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20867 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20868 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20869 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20870 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20871 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20872 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20873 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20874 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20875 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20876 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20877 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20878 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20879 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20880 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
20881
20882 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20883 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20884 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20885 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20886 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20887 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20888 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20889 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20890 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20891 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20892 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20893 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20894 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20895 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20896 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20897 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20898 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020899 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020900 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
20901
20902 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20903 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20904 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20905 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20906 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20907 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20908 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20909 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20910 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20911 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20912 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20913 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20914 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20915 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20916 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20917 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20918 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020919 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020920 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
20921
20922 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20923 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20924 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20925 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20926 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20927 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20928 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20929 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20930 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20931 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20932 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20933 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20934 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20935 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20936 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20937 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20938 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020939 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020940 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
20941
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020942 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
20943 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
20944 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
20945 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
20946 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020947 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020948 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020949 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20950 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20951 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20952 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20953 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20954 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20955 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20956 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20957 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20958 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20959 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20960 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20961 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20962 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20963 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020964 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020965 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20966 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20967 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020968 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020969 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20970 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020971 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20972 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20973 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020974 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020975 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20976 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20977 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020978 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020979 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020980 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20981 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20982 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020983 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20984 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20985 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20986 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20987 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20988 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20989 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20990 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20991 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20992 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20993 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020994 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020995 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20996 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20997 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020998 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020999 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021000 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21001 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21002 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021003 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021004 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021005 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21006 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21007 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21008 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21009 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021010 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21011 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21012 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21013 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021014 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021015
21016 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21017 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21018 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21019 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21020 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21021 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21022 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21023 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21024 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21025 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21026 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21027 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21028 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21029 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21030 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21031 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021032 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021033 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21034 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21035 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21036 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021037 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21038 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21039 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21040 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21041 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021042 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021043 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21044 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21045 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21046 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21047 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21048 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021049 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21050 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021051
21052 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21053 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21054 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21055 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21056 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21057 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21058 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21059 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21060 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21061 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21062 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21063 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21064 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21065 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21066 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21067 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021068 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021069 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21070 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21071 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21072 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021073 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21074 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21075 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21076 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21077 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021078 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021079 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21080 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21081 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21082 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21083 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21084 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021085 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21086 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021087
21088 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21089 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21090 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21091 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21092 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21093 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21094 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21095 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21096 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21097 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21098 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21099 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21100 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21101 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21102 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21103 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021104 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021105 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21106 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21107 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21108 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021109 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21110 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21111 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21112 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21113 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021114 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021115 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21116 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21117 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21118 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21119 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21120 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021121 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21122 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021123
21124 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21125 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21126 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21127 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21128 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21129 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21130 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21131 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21132 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21133 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21134 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21135 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21136 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21137 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21138 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21139 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021140 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021141 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21142 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21143 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21144 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021145 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21146 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21147 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21148 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21149 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021150 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021151 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21152 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21153 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21154 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21155 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21156 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021157 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21158 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021159
21160 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21161 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21162 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21163 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21164 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21165 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21166 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21167 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21168 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21169 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21170 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21171 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21172 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21173 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21174 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21175 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021176 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021177 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21178 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21179 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21180 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021181 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21182 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21183 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21184 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21185 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021186 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021187 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21188 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21189 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21190 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21191 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21192 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021193 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21194 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021195
21196 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21197 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21198 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21199 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21200 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21201 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21202 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21203 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21204 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21205 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21206 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21207 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21208 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21209 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21210 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21211 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021212 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021213 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21214 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21215 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21216 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021217 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21218 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21219 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21220 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21221 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021222 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021223 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21224 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21225 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21226 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21227 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21228 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021229 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21230 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021231
21232 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21233 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21234 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21235 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21236 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21237 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21238 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21239 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21240 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21241 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21242 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21243 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21244 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21245 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21246 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21247 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021248 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021249 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21250 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21251 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21252 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021253 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21254 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21255 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21256 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21257 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021258 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021259 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21260 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21261 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21262 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21263 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21264 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021265 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21266 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021267
21268 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21269 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21270 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21271 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21272 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21273 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21274 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21275 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021276 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21277 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21278 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21279 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021280 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21281 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21282 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21283 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21284 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021285 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021286 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21287 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21288 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21289 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21290 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21291 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021292 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21293 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021294 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021295
Laxminath Kasam38070be2017-08-17 18:21:59 +053021296 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21297 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21298 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21299 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21300 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21301 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21302 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21303 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021304 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21305 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21306 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21307 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21308 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21309 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021310 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021311
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021312 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21313 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21314 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21315 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021316 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021317 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21318 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21319 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21320 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21321 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21322 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21323 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21324 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21325 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21326 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21327 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21328 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21329 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21330 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21331 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21332 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021333 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21334 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21335 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21336 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021337 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21338 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21339 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21340 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21341 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021342 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021343 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21344 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21345 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21346 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21347 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21348 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021349 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21350 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021351 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021352
Derek Chen07c6d1c2018-07-05 10:39:25 -070021353 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21354 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21355 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21356 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21357 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21358 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21359 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21360 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21361 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21362 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21363 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21364 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21365 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21366 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21367 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21368 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21369 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21370 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21371 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21372 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21373 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21374 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021375 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21376 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21377 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21378 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21379 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021380 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021381 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21382 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21383 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21384 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21385 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21386 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21387 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21388 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021389 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021390
Surendar Karkac1cde372018-08-14 18:56:24 +053021391 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21392 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21393 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021394 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021395 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21396 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21397 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21398 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21399 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21400 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21401 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021402 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021403
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021404 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21405 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21406 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21407 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21408 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21409 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021410 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021411
Asish Bhattacharya34504582017-08-08 12:55:01 +053021412 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21413 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21414 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21415 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21416 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21417 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21418 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21419 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21420 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21421 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21422 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21423 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21424 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21425 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21426 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21427 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21428 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021429 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21430 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21431 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21432 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21433 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021434 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021435 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21436 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21437 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21438 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21439 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21440 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021441 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21442 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021443 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021444
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021445 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21446 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21447 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21448 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21449 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21450 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021451 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021452
21453 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21454 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21455 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21456 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21457 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21458 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021459 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021460
21461 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21462 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21463 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21464 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21465 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21466 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021467 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021468
21469 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21470 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21471 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21472 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21473 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21474 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021475 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021476
21477 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21478 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21479 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21480 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21481 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21482 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021483 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021484
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021485 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21486 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21487 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21488 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21489 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21490 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21491 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21492 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21493 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21494 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21495 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21496 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21497 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21498 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21499 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21500 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21501 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21502 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21503
21504 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21505 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21506 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21507 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21508 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21509 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21510 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21511 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21512 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21513 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21514 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21515 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21516 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21517 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21518 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21519 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21520 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21521 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21522
21523 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21524 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21525 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21526 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21527 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21528 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21529 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21530 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21531 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21532 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21533 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21534 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21535 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21536 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21537 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21538 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21539 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21540
21541 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21542 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21543 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21544 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21545 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21546 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21547 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21548 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21549 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21550 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21551 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21552 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21553 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21554 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21555 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21556 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21557 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21558
21559 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21560 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21561 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021562 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021563 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21564 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21565 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021566 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21567 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021568 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21569 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021570 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021571 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21572 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021573 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021574 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21575 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21576 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021577 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21578 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021579 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21580 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21581 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21582
21583 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21584 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21585 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021586 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021587 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21588 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21589 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021590 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21591 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021592 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21593 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021594 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021595 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21596 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21597 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21598 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21599 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21600 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21601 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21602 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21603 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021604 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021605 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021606 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21607 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21608 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21609 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021610 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021611 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021612 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21613 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021614
21615 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21616 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21617 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21618 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21619 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21620 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21621 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21622 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21623 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21624 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21625 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21626 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21627 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21628 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21629 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21630 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021631 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021632 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21633
21634 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21635 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21636 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21637 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21638 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21639 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21640 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21641 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21642 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21643 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21644 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21645 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21646 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21647 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21648 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21649 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021650 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021651 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
21652
21653 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21654 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21655 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21656 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21657 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21658 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21659 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21660 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21661 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21662 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21663 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21664 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21665 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21666 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21667 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21668 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21669 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
21670
21671 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21672 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21673 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21674 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21675 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21676 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21677 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21678 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21679 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21680 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21681 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21682 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21683 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21684 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21685 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21686 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21687 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
21688
Rohit Kumara5077932017-09-10 22:05:05 +053021689 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21690 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21691 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21692 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21693 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21694 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21695 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21696 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21697 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21698 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21699 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21700 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21701 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21702 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21703 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21704 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21705 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
21706
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021707 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21708 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21709 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21710 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21711 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21712 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
21713
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021714 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
21715 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21716 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21717 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
21718
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021719 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21720 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21721 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21722 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21723 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21724 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
21725
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021726 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
21727 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021728 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21729 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21730 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21731 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
21732
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021733 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
21734 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021735 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21736 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21737 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21738 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
21739
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021740 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21741 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021742 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21743 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21744 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21745 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
21746
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021747 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
21748 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021749 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21750 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21751 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21752 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
21753
Karthikeyan Mani57550082018-05-03 18:43:58 -070021754 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
21755 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21756 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
21757 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21758 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21759 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
21760
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021761 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21762 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21763 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21764 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21765 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021766 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
21767
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021768 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21769 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21770 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21771 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21772 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21773 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
21774
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021775 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21776 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021777 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21778 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21779 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21780 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
21781
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021782 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21783 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021784 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21785 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21786 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21787 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
21788
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021789 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21790 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021791 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21792 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21793 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21794 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
21795
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021796 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21797 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021798 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21799 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21800 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21801 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
21802
Rohit Kumara5077932017-09-10 22:05:05 +053021803 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21804 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021805 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21806 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21807 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21808 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
21809
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021810 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21811 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21812 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21813 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21814 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21815 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
21816 {"HDMI", NULL, "HDMI_DL_HL"},
21817
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021818 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021819 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21820 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21821 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080021822 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021823 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
21824
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021825 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021826 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21827 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21828 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21829 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21830 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
21831
21832 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21833 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21834 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21835 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21836 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21837 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
21838
21839 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21840 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21841 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21842 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21843 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21844 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
21845
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021846 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021847 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21848 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21849 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21850 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21851 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
21852
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021853 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021854 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21855 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21856 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21857 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
21858
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021859 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021860 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21861 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21862 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21863 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
21864
21865 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21866 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
21867
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021868 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21869 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21870 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
21871
21872 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21873 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21874 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
21875
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021876 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21877 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21878 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21879 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021880 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021881 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070021882 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021883 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021884 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
21885 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
21886
21887 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21888 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21889 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21890 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21891 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21892 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21893 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21894 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21895 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21896 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021897 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21898 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021899
21900 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21901 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21902 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21903 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21904
21905 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21906 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21907 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21908 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21909
21910 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21911 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21912 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21913 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21914
21915 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21916 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21917 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21918 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21919
21920 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21921 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21922 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21923 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21924
21925 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21926 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21927 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21928 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21929
21930 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21931 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21932 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21933 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21934
Laxminath Kasam38070be2017-08-17 18:21:59 +053021935 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21936 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21937 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21938 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21939 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21940 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21941 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21942 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21943 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21944 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021945 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21946 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070021947
21948 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21949 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21950 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21951 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21952
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021953 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21954 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21955 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21956 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21957
21958 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21959 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21960 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21961 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21962
21963 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21964 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21965 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21966 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21967
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021968 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21969 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21970 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21971 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21972
21973 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21974 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21975 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21976 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080021977
21978 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21979 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21980 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21981 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21982 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21983 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21984 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21985 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21986
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021987 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
21988 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
21989 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
21990 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
21991 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
21992 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
21993 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
21994 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021995 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021996 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021997 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
21998 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
21999 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022000 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
22001 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022002
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022003 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
22004 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
22005 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
22006 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
22007 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
22008 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
22009 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
22010 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
22011 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
22012 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
22013 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
22014 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
22015 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
22016 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
22017 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022018 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022019 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022020 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
22021 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
22022 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
22023 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
22024 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
22025 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022026 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
22027
22028 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
22029 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
22030 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
22031 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
22032 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
22033 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
22034 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
22035 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
22036 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
22037 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
22038 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
22039 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
22040 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
22041 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
22042 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022043 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022044 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
22045 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
22046 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
22047 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
22048 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
22049 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022050 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
22051
22052 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
22053 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
22054 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
22055 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
22056 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
22057 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
22058 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
22059 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
22060 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
22061 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
22062 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
22063 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
22064 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
22065 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022066 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022067 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
22068 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
22069
22070 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
22071 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
22072 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
22073 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
22074 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
22075 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
22076 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
22077 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
22078 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
22079 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
22080 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
22081 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
22082 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
22083 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
22084 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022085 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22086 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
22087 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022088 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22089 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
22090 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022091 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22092 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22093 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22094 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22095 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22096 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22097 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22098 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022099 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22100 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022101 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022102 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022103 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022104 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
22105
22106 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22107 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22108 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22109 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22110 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22111 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22112 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22113 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022114 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22115 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022116 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022117 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022118 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022119 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
22120
22121
22122 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22123 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22124 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22125 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22126 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22127 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22128 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22129 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022130 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22131 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022132 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022133 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022134 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022135 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
22136
22137
22138 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22139 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22140 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22141 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22142 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22143 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22144 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22145 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022146 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22147 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022148 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022149 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022150 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022151 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
22152
22153 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22154 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22155 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22156 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22157 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22158 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22159 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22160 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022161 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22162 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022163 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022164 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022165 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022166 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
22167
22168 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22169 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22170 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22171 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22172 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22173 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022174 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22175 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022176 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022177 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022178 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022179 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
22180
22181 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22182 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22183 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22184 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22185 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22186 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022187 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22188 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022189 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022190 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022191 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022192 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
22193
22194 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22195 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22196 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22197 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22198 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22199 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022200 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22201 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022202 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022203 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022204 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022205 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
22206
22207
22208 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
22209 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
22210 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
22211 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
22212 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
22213 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
22214 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
22215 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
22216 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
22217 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
22218 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022219 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022220 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
22221 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
22222 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
22223 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
22224 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
22225 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
22226
22227 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
22228 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
22229 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
22230 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
22231 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
22232 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
22233 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
22234 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
22235 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
22236 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
22237 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
22238 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080022239 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
22240 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022241 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022242 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022243 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022244 {"MI2S_RX", NULL, "MI2S_DL_HL"},
22245 {"MI2S_UL_HL", NULL, "MI2S_TX"},
22246 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
22247 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
22248
22249 /* connect to INT4_MI2S_DL_HL since same pcm_id */
22250 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22251 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
22252 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22253 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
22254 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
22255 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
22256 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
22257 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
22258 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
22259 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
22260
22261 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
22262 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022263 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
22264 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022265 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22266 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
22267 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22268 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
22269 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
22270 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
22271 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
22272 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
22273 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
22274 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
22275
22276 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
22277 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
22278 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
22279 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
22280 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
22281 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
22282 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
22283 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
22284 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
22285 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
22286 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
22287 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
22288 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
22289 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
22290 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
22291 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022292 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022293 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
22294 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
22295 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
22296 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022297 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022298 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
22299 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
22300 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
22301 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
22302 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
22303 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
22304 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
22305 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
22306 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
22307 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
22308 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
22309 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022310 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
22311 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
22312 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
22313 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
22314 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
22315 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
22316 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
22317 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022318
22319 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22320 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22321 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22322 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22323 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22324 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22325 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22326 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22327 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22328 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22329 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22330 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22331 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22332 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22333 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22334 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022335 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22336 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22337 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22338 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022339 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
22340
22341 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22342 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22343 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22344 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22345 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22346 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22347 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22348 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22349 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22350 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22351 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22352 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22353 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22354 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22355 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22356 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022357 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22358 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22359 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22360 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022361 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
22362
22363 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22364 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22365 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22366 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22367 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22368 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22369 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22370 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22371 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22372 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22373 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22374 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22375 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22376 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22377 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22378 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022379 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22380 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22381 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22382 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022383 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22384
22385 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22386 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22387 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22388 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22389 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22390 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22391 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22392 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22393 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22394 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22395 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22396 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22397 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22398 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22399 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22400 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022401 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22402 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22403 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22404 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022405 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22406
22407 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22408 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22409 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22410 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22411 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22412 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22413 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22414 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22415 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22416 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22417 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22418 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22419 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22420 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22421 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22422 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022423 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22424 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22425 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22426 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022427 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22428
22429 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22430 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22431 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22432 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22433 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22434 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22435 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22436 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22437 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22438 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22439 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22440 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22441 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22442 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22443 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22444 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022445 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22446 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22447 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22448 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022449 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22450
22451 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22452 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22453 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22454 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22455 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22456 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22457 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22458 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22459 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22460 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22461 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22462 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22463 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22464 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22465 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22466 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022467 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22468 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22469 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22470 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022471 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22472
22473 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22474 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22475 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22476 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22477 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22478 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22479 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22480 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22481 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22482 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22483 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22484 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22485 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22486 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22487 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22488 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022489 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22490 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22491 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22492 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022493 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22494
Derek Chenfdcc0982018-10-02 15:14:03 -070022495 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
22496 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
22497
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022498 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22499 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22500 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22501 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22502 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22503 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22504 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22505 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22506 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22507 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22508 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22509 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22510 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22511 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22512 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22513 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022514 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22515 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22516 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22517 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022518 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22519
22520 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22521 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22522 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22523 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22524 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22525 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22526 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22527 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22528 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22529 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22530 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22531 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22532 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22533 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22534 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22535 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022536 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22537 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22538 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22539 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022540 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22541
22542 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22543 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22544 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22545 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22546 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22547 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22548 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22549 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22550 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22551 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22552 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22553 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22554 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22555 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22556 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22557 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022558 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22559 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22560 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22561 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022562 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22563
22564 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22565 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22566 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22567 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22568 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22569 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22570 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22571 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22572 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22573 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22574 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22575 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22576 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22577 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22578 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22579 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022580 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22581 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22582 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22583 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022584 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22585
22586 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22587 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22588 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22589 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22590 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22591 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22592 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22593 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22594 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22595 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22596 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22597 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22598 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22599 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22600 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22601 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022602 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22603 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22604 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22605 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022606 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22607
22608 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22609 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22610 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22611 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22612 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22613 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22614 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22615 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22616 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22617 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22618 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22619 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22620 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22621 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22622 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22623 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022624 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22625 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22626 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22627 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022628 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22629
22630 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22631 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22632 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22633 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22634 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22635 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22636 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22637 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22638 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22639 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22640 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22641 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22642 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22643 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22644 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22645 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022646 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22647 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22648 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22649 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022650 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
22651
22652 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22653 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22654 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22655 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22656 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22657 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22658 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22659 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22660 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22661 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22662 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22663 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22664 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22665 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22666 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22667 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022668 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22669 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22670 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22671 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022672 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
22673
Rohit Kumara5077932017-09-10 22:05:05 +053022674 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22675 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22676 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22677 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22678 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22679 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22680 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22681 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22682 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22683 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22684 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22685 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22686 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22687 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22688 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22689 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22690 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22691 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22692 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22693 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022694 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022695
22696 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22697 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22698 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22699 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22700 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22701 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22702 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22703 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22704 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22705 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22706 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22707 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22708 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22709 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22710 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22711 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22712 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22713 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22714 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22715 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022716 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022717
22718 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22719 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22720 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22721 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22722 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22723 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22724 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22725 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22726 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22727 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22728 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22729 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22730 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22731 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22732 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22733 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22734 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22735 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22736 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22737 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022738 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022739
22740 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22741 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22742 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22743 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22744 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22745 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22746 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22747 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22748 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22749 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22750 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22751 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22752 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22753 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22754 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22755 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22756 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22757 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22758 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22759 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022760 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022761
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022762 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22763 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22764 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22765 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022766 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022767 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22768 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22769 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22770 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022771 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022772 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22773 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
22774
22775 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22776 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22777 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22778 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022779 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022780 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22781 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22782 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022783 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022784 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22785 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22786 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
22787
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022788 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22789 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22790 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080022791 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22792 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080022793 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22794 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022795
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022796 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22797 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22798 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22799 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22800 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022801 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022802 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22803 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22804 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22805 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022806 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022807 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22808 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22809 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22810 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22811 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022812 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022813 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22814 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
22815 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22816 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22817 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
22818 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22819 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
22820 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
22821 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
22822 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
22823
22824
22825 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22826 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22827 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22828 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22829 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022830 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022831 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
22832
22833 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22834 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22835 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022836 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022837 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
22838
22839 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22840 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22841 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22842 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
22843
22844 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22845 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
22846 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22847 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
22848
Rohit Kumara5077932017-09-10 22:05:05 +053022849 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22850 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
22851 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22852 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
22853
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022854 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22855 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22856 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22857 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22858 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22859 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22860 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22861 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022862 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022863 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
22864 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22865 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22866 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22867 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22868 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22869 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22870 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22871 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22872 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22873 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
22874
22875 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22876 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22877 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22878 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22879 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22880 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22881 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22882 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22883 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22884 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22885 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22886 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
22887
22888 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22889 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22890 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22891 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22892 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22893 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22894 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22895 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22896 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22897 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22898 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22899 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
22900
kunleizdf5a00a2017-11-27 15:27:36 +080022901 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22902 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022903 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022904
22905 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22906 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022907 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022908
22909 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22910 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022911 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
22912
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022913 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
22914 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022915 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22916 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22917 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22918 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
22919
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022920 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
22921 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022922 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22923 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22924 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22925 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
22926
22927 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22928 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22929 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22930 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
22931 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22932 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22933 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
22934 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
22935 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22936 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
22937 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
22938 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
22939 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
22940
22941 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22942 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22943 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22944 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22945 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022946 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022947 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22948 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22949 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22950 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22951 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22952 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22953 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22954 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
22955
22956 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22957 {"HDMI", NULL, "HDMI_RX Port Mixer"},
22958
22959 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22960 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
22961
Karthikeyan Mani57550082018-05-03 18:43:58 -070022962 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
22963 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
22964
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022965 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22966 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
22967
22968 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22969 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22970 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
22971
22972 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22973 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22974 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22975 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022976 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022977 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22978 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22979 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22980 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022981 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022982 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
22983
22984 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22985 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22986 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22987 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022988 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022989 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22990 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22991 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022992 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022993 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
22994
22995 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22996 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22997 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22998 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022999 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023000 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23001 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23002 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
23003
23004 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23005 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23006 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23007 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023008 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023009 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23010 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23011 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23012 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23013 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
23014
Rohit Kumara5077932017-09-10 22:05:05 +053023015 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23016 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23017 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23018 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23019 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
23020 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23021 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23022 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
23023
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023024 /* Backend Enablement */
23025
23026 {"BE_OUT", NULL, "PRI_I2S_RX"},
23027 {"BE_OUT", NULL, "SEC_I2S_RX"},
23028 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
23029 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
23030 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
23031 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23032 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
23033 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
23034 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
23035 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
23036 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023037 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023038 {"BE_OUT", NULL, "USB_AUDIO_RX"},
23039 {"BE_OUT", NULL, "HDMI"},
23040 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070023041 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023042 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
23043 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023044 {"BE_OUT", NULL, "MI2S_RX"},
23045 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
23046 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
23047 {"BE_OUT", NULL, "TERT_MI2S_RX"},
23048 {"BE_OUT", NULL, "SEC_MI2S_RX"},
23049 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
23050 {"BE_OUT", NULL, "PRI_MI2S_RX"},
23051 {"BE_OUT", NULL, "INT0_MI2S_RX"},
23052 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023053 {"BE_OUT", NULL, "INT2_MI2S_RX"},
23054 {"BE_OUT", NULL, "INT3_MI2S_RX"},
23055 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023056 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23057 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
23058 {"BE_OUT", NULL, "INT_FM_RX"},
23059 {"BE_OUT", NULL, "PCM_RX"},
23060 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23061 {"BE_OUT", NULL, "AUX_PCM_RX"},
23062 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
23063 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
23064 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023065 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023066 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23067 {"BE_OUT", NULL, "INT_FM_RX"},
23068 {"BE_OUT", NULL, "PCM_RX"},
23069 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23070 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
23071 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
23072 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
23073 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
23074 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
23075 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
23076 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
23077 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
23078 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
23079 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023080 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023081 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
23082 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
23083 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
23084 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
23085 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
23086 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
23087 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
23088 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
23089 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023090 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
23091 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
23092 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
23093 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023094 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
23095 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023096 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
23097 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
23098 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
23099 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
23100 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
23101 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
23102 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
23103 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023104
23105 {"PRI_I2S_TX", NULL, "BE_IN"},
23106 {"MI2S_TX", NULL, "BE_IN"},
23107 {"QUAT_MI2S_TX", NULL, "BE_IN"},
23108 {"QUIN_MI2S_TX", NULL, "BE_IN"},
23109 {"PRI_MI2S_TX", NULL, "BE_IN"},
23110 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023111 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023112 {"INT2_MI2S_TX", NULL, "BE_IN"},
23113 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023114 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023115 {"INT5_MI2S_TX", NULL, "BE_IN"},
23116 {"SEC_MI2S_TX", NULL, "BE_IN"},
23117 {"SENARY_MI2S_TX", NULL, "BE_IN" },
23118 {"SLIMBUS_0_TX", NULL, "BE_IN" },
23119 {"SLIMBUS_1_TX", NULL, "BE_IN" },
23120 {"SLIMBUS_3_TX", NULL, "BE_IN" },
23121 {"SLIMBUS_4_TX", NULL, "BE_IN" },
23122 {"SLIMBUS_5_TX", NULL, "BE_IN" },
23123 {"SLIMBUS_6_TX", NULL, "BE_IN" },
23124 {"SLIMBUS_7_TX", NULL, "BE_IN" },
23125 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053023126 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023127 {"USB_AUDIO_TX", NULL, "BE_IN" },
23128 {"INT_BT_SCO_TX", NULL, "BE_IN"},
23129 {"INT_FM_TX", NULL, "BE_IN"},
23130 {"PCM_TX", NULL, "BE_IN"},
23131 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23132 {"BE_OUT", NULL, "STUB_RX"},
23133 {"STUB_TX", NULL, "BE_IN"},
23134 {"STUB_1_TX", NULL, "BE_IN"},
23135 {"BE_OUT", NULL, "AUX_PCM_RX"},
23136 {"AUX_PCM_TX", NULL, "BE_IN"},
23137 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
23138 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
23139 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023140 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023141 {"INCALL_RECORD_TX", NULL, "BE_IN"},
23142 {"INCALL_RECORD_RX", NULL, "BE_IN"},
23143 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
23144 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023145 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
23146 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023147 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
23148 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23149 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23150 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
23151 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023152 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
23153 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023154 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
23155 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
23156 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
23157 {"PRI_TDM_TX_0", NULL, "BE_IN"},
23158 {"PRI_TDM_TX_1", NULL, "BE_IN"},
23159 {"PRI_TDM_TX_2", NULL, "BE_IN"},
23160 {"PRI_TDM_TX_3", NULL, "BE_IN"},
23161 {"SEC_TDM_TX_0", NULL, "BE_IN"},
23162 {"SEC_TDM_TX_1", NULL, "BE_IN"},
23163 {"SEC_TDM_TX_2", NULL, "BE_IN"},
23164 {"SEC_TDM_TX_3", NULL, "BE_IN"},
23165 {"TERT_TDM_TX_0", NULL, "BE_IN"},
23166 {"TERT_TDM_TX_1", NULL, "BE_IN"},
23167 {"TERT_TDM_TX_2", NULL, "BE_IN"},
23168 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023169 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023170 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
23171 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
23172 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
23173 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053023174 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023175 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
23176 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
23177 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
23178 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023179 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
23180 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
23181 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
23182 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
23183 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023184 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023185 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
23186 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
23187 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
23188 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
23189 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
23190 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023191 {"PRI_SPDIF_TX", NULL, "BE_IN"},
23192 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023193};
23194
23195static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
23196 struct snd_pcm_hw_params *params)
23197{
23198 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23199 unsigned int be_id = rtd->dai_link->id;
23200
23201 if (be_id >= MSM_BACKEND_DAI_MAX) {
23202 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23203 return -EINVAL;
23204 }
23205
23206 mutex_lock(&routing_lock);
23207 msm_bedais[be_id].sample_rate = params_rate(params);
23208 msm_bedais[be_id].channel = params_channels(params);
23209 msm_bedais[be_id].format = params_format(params);
23210 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
23211 __func__, msm_bedais[be_id].sample_rate,
23212 msm_bedais[be_id].format, be_id);
23213 mutex_unlock(&routing_lock);
23214 return 0;
23215}
23216
23217static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
23218{
23219 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23220 unsigned int be_id = rtd->dai_link->id;
23221 int i, session_type, path_type, topology;
23222 struct msm_pcm_routing_bdai_data *bedai;
23223 struct msm_pcm_routing_fdai_data *fdai;
23224
23225 pr_debug("%s: substream->pcm->id:%s\n",
23226 __func__, substream->pcm->id);
23227
23228 if (be_id >= MSM_BACKEND_DAI_MAX) {
23229 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23230 return -EINVAL;
23231 }
23232
23233 bedai = &msm_bedais[be_id];
23234 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
23235 0 : 1);
23236 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23237 path_type = ADM_PATH_PLAYBACK;
23238 else
23239 path_type = ADM_PATH_LIVE_REC;
23240
23241 mutex_lock(&routing_lock);
23242 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23243 if (!is_mm_lsm_fe_id(i))
23244 continue;
23245 fdai = &fe_dai_map[i][session_type];
23246 if (fdai->strm_id != INVALID_SESSION) {
23247 int idx;
23248 int port_id;
23249 unsigned long copp =
23250 session_copp_map[i][session_type][be_id];
23251 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
23252 if (test_bit(idx, &copp))
23253 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070023254
23255 if (idx >= MAX_COPPS_PER_PORT) {
23256 pr_debug("%s: copp idx is invalid, exiting\n",
23257 __func__);
23258 continue;
23259 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023260 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053023261 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023262 topology = adm_get_topology_for_port_copp_idx(port_id,
23263 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023264 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053023265 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023266 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
23267 __func__, copp, i, session_type, be_id,
23268 topology);
23269 clear_bit(idx,
23270 &session_copp_map[i][session_type][be_id]);
23271 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023272 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023273 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023274 topology);
23275 }
23276 }
23277
23278 bedai->active = 0;
23279 bedai->sample_rate = 0;
23280 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023281 mutex_unlock(&routing_lock);
23282
23283 return 0;
23284}
23285
23286static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
23287{
23288 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23289 unsigned int be_id = rtd->dai_link->id;
23290 int i, path_type, topology;
23291 int session_type = INVALID_SESSION;
23292 struct msm_pcm_routing_bdai_data *bedai;
23293 u32 channels, sample_rate;
23294 uint16_t bits_per_sample = 16, voc_path_type;
23295 struct msm_pcm_routing_fdai_data *fdai;
23296 u32 session_id;
23297 struct media_format_info voc_be_media_format;
23298 bool is_lsm;
23299
23300 pr_debug("%s: substream->pcm->id:%s\n",
23301 __func__, substream->pcm->id);
23302
23303 if (be_id >= MSM_BACKEND_DAI_MAX) {
23304 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23305 return -EINVAL;
23306 }
23307
23308 bedai = &msm_bedais[be_id];
23309
23310 mutex_lock(&routing_lock);
23311 if (bedai->active == 1)
23312 goto done; /* Ignore prepare if back-end already active */
23313
23314 /* AFE port is not active at this point. However, still
23315 * go ahead setting active flag under the notion that
23316 * QDSP6 is able to handle ADM starting before AFE port
23317 * is started.
23318 */
23319 bedai->active = 1;
23320
23321 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23322 if (!(is_mm_lsm_fe_id(i) &&
23323 route_check_fe_id_adm_support(i)))
23324 continue;
23325
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023326 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
23327 SESSION_TYPE_RX : SESSION_TYPE_TX;
23328 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023329 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023330 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023331 path_type = ADM_PATH_COMPRESSED_RX;
23332 else
23333 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023334 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023335 if ((fdai->passthr_mode != LEGACY_PCM) &&
23336 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020023337 path_type = ADM_PATH_COMPRESSED_TX;
23338 else
23339 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023340 }
23341
23342 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
23343 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023344 if (fdai->strm_id != INVALID_SESSION) {
23345 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053023346 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023347
23348 if (session_type == SESSION_TYPE_TX &&
23349 fdai->be_srate &&
23350 (fdai->be_srate != bedai->sample_rate)) {
23351 pr_debug("%s: flush strm %d diff BE rates\n",
23352 __func__,
23353 fdai->strm_id);
23354
23355 if (fdai->event_info.event_func)
23356 fdai->event_info.event_func(
23357 MSM_PCM_RT_EVT_BUF_RECFG,
23358 fdai->event_info.priv_data);
23359 fdai->be_srate = 0; /* might not need it */
23360 }
23361 bits_per_sample = msm_routing_get_bit_width(
23362 bedai->format);
23363
23364 app_type =
23365 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
23366 if (app_type && is_lsm) {
23367 app_type_idx =
23368 msm_pcm_routing_get_lsm_app_type_idx(app_type);
23369 sample_rate =
23370 fe_dai_app_type_cfg[i][session_type][be_id]
23371 .sample_rate;
23372 bits_per_sample =
23373 lsm_app_type_cfg[app_type_idx].bit_width;
23374 } else if (app_type) {
23375 app_type_idx =
23376 msm_pcm_routing_get_app_type_idx(app_type);
23377 sample_rate =
23378 fe_dai_app_type_cfg[i][session_type]
23379 [be_id].sample_rate;
23380 bits_per_sample =
23381 app_type_cfg[app_type_idx].bit_width;
23382 } else
23383 sample_rate = bedai->sample_rate;
23384 /*
23385 * check if ADM needs to be configured with different
23386 * channel mapping than backend
23387 */
23388 if (!bedai->adm_override_ch)
23389 channels = bedai->channel;
23390 else
23391 channels = bedai->adm_override_ch;
23392 acdb_dev_id =
23393 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23394 topology = msm_routing_get_adm_topology(i, session_type,
23395 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023396
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023397 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23398 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23399 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023400 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23401
Surendar Karkae7507512018-07-20 15:46:54 +053023402 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023403 sample_rate, channels, topology,
23404 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053023405 app_type, acdb_dev_id,
23406 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023407 if ((copp_idx < 0) ||
23408 (copp_idx >= MAX_COPPS_PER_PORT)) {
23409 pr_err("%s: adm open failed\n", __func__);
23410 mutex_unlock(&routing_lock);
23411 return -EINVAL;
23412 }
23413 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23414 __func__, i, session_type, be_id);
23415 set_bit(copp_idx,
23416 &session_copp_map[i][session_type][be_id]);
23417
23418 if (msm_is_resample_needed(
23419 sample_rate,
23420 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053023421 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023422 bedai->sample_rate);
23423
23424 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023425 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023426 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023427 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023428 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023429 topology, channels);
23430 }
23431 }
23432
23433 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23434 session_id = msm_pcm_routing_get_voc_sessionid(i);
23435 if (session_id) {
23436 pr_debug("%s voice session_id: 0x%x\n", __func__,
23437 session_id);
23438
23439 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23440 voc_path_type = RX_PATH;
23441 else
23442 voc_path_type = TX_PATH;
23443
23444 voc_set_route_flag(session_id, voc_path_type, 1);
23445
23446 memset(&voc_be_media_format, 0,
23447 sizeof(struct media_format_info));
23448
23449 voc_be_media_format.port_id = bedai->port_id;
23450 voc_be_media_format.num_channels = bedai->channel;
23451 voc_be_media_format.sample_rate = bedai->sample_rate;
23452 voc_be_media_format.bits_per_sample = bedai->format;
23453 /* Defaulting this to 1 for voice call usecases */
23454 voc_be_media_format.channel_mapping[0] = 1;
23455
23456 voc_set_device_config(session_id, voc_path_type,
23457 &voc_be_media_format);
23458
23459 if (voc_get_route_flag(session_id, RX_PATH) &&
23460 voc_get_route_flag(session_id, TX_PATH))
23461 voc_enable_device(session_id);
23462 }
23463 }
23464
23465 /* Check if backend is an external ec ref port and set as needed */
23466 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23467
23468 memset(&voc_be_media_format, 0,
23469 sizeof(struct media_format_info));
23470
23471 /* Get format info for ec ref port from msm_bedais[] */
23472 voc_be_media_format.port_id = bedai->port_id;
23473 voc_be_media_format.num_channels = bedai->channel;
23474 voc_be_media_format.bits_per_sample = bedai->format;
23475 voc_be_media_format.sample_rate = bedai->sample_rate;
23476 /* Defaulting this to 1 for voice call usecases */
23477 voc_be_media_format.channel_mapping[0] = 1;
23478 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23479 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23480 __func__, voc_be_media_format.port_id,
23481 voc_be_media_format.num_channels,
23482 voc_be_media_format.bits_per_sample,
23483 voc_be_media_format.sample_rate);
23484 }
23485
23486done:
23487 mutex_unlock(&routing_lock);
23488
23489 return 0;
23490}
23491
23492static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23493 int fe_id)
23494{
23495 int index, topo_id, be_idx;
23496 unsigned long pp_config = 0;
23497 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023498 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023499 bool compr_passthr_mode = true;
23500
23501 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23502
23503 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23504 pr_err("%s: Device pp params on invalid port %d\n",
23505 __func__, port_id);
23506 return -EINVAL;
23507 }
23508
23509 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23510 if (port_id == msm_bedais[be_idx].port_id)
23511 break;
23512 }
23513
23514 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23515 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23516 return -EINVAL;
23517 }
23518
23519 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23520 if (msm_bedais_pp_params[index].port_id == port_id)
23521 break;
23522 }
23523 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23524 pr_err("%s: Invalid backend pp params index %d\n",
23525 __func__, index);
23526 return -EINVAL;
23527 }
23528
23529 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23530 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23531 pr_err("%s: Invalid passthrough topology 0x%x\n",
23532 __func__, topo_id);
23533 return -EINVAL;
23534 }
23535
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023536 session_type =
23537 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23538 SESSION_TYPE_RX : SESSION_TYPE_TX;
23539
23540 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23541 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023542 compr_passthr_mode = false;
23543
23544 pp_config = msm_bedais_pp_params[index].pp_params_config;
23545 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23546 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23547 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23548 mute_on = msm_bedais_pp_params[index].mute_on;
23549 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23550 adm_send_compressed_device_mute(port_id,
23551 copp_idx,
23552 mute_on);
23553 }
23554 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23555 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23556 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23557 &pp_config);
23558 latency = msm_bedais_pp_params[index].latency;
23559 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23560 adm_send_compressed_device_latency(port_id,
23561 copp_idx,
23562 latency);
23563 }
23564 return 0;
23565}
23566
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023567static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23568{
23569 uint32_t topology = NULL_COPP_TOPOLOGY;
23570 void *cal_info = NULL;
23571 uint32_t size = 0;
23572
23573 /* Retrieve cal_info size from cal data*/
23574 size = data_size - sizeof(struct audio_cal_type_basic);
23575 cal_info = kzalloc(size, GFP_KERNEL);
23576
23577 if (!cal_info)
23578 goto done;
23579
23580 memcpy(cal_info,
23581 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23582
23583 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23584 kfree(cal_info);
23585 cal_info = NULL;
23586
23587done:
23588 pr_debug("%s: Using topology %d\n", __func__, topology);
23589
23590 return topology;
23591}
23592
23593static void msm_routing_load_topology(size_t data_size, void *data)
23594{
23595 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023596 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023597
23598 topology_id = msm_routing_get_topology(data_size, data);
23599 if (topology_id != NULL_COPP_TOPOLOGY)
23600 ret = q6core_load_unload_topo_modules(topology_id,
23601 CORE_LOAD_TOPOLOGY);
23602 if (ret < 0)
23603 pr_debug("%s %d load topology failed\n",
23604 __func__, topology_id);
23605
23606}
23607
23608static void msm_routing_unload_topology(uint32_t topology_id)
23609{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023610 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023611
23612 if (topology_id != NULL_COPP_TOPOLOGY)
23613 ret = q6core_load_unload_topo_modules(topology_id,
23614 CORE_UNLOAD_TOPOLOGY);
23615 if (ret < 0)
23616 pr_debug("%s %d unload topology failed\n",
23617 __func__, topology_id);
23618
23619}
23620
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023621static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23622 struct snd_ctl_elem_value *ucontrol)
23623{
23624 int pp_id = ucontrol->value.integer.value[0];
23625 int port_id = 0;
23626 int index, be_idx, i, topo_id, idx;
23627 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023628 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023629 bool compr_passthr_mode = true;
23630
23631 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23632
23633 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23634 port_id = msm_bedais[be_idx].port_id;
23635 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
23636 break;
23637 }
23638
23639 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23640 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23641 return -EINVAL;
23642 }
23643
23644 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23645 if (msm_bedais_pp_params[index].port_id == port_id)
23646 break;
23647 }
23648 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23649 pr_err("%s: Invalid pp params backend index %d\n",
23650 __func__, index);
23651 return -EINVAL;
23652 }
23653
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023654 session_type =
23655 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23656 SESSION_TYPE_RX : SESSION_TYPE_TX;
23657
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023658 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
23659 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023660 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
23661 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023662 compr_passthr_mode = false;
23663
23664 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23665 unsigned long copp =
23666 session_copp_map[i]
23667 [SESSION_TYPE_RX][be_idx];
23668 if (!test_bit(idx, &copp))
23669 continue;
23670 topo_id = adm_get_topology_for_port_copp_idx(port_id,
23671 idx);
23672 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
23673 continue;
23674 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
23675 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023676 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023677 switch (pp_id) {
23678 case ADM_PP_PARAM_MUTE_ID:
23679 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23680 mute = ucontrol->value.integer.value[1] ? true : false;
23681 msm_bedais_pp_params[index].mute_on = mute;
23682 set_bit(ADM_PP_PARAM_MUTE_BIT,
23683 &msm_bedais_pp_params[index].pp_params_config);
23684 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23685 adm_send_compressed_device_mute(port_id,
23686 idx, mute);
23687 break;
23688 case ADM_PP_PARAM_LATENCY_ID:
23689 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23690 msm_bedais_pp_params[index].latency =
23691 ucontrol->value.integer.value[1];
23692 set_bit(ADM_PP_PARAM_LATENCY_BIT,
23693 &msm_bedais_pp_params[index].pp_params_config);
23694 latency = msm_bedais_pp_params[index].latency =
23695 ucontrol->value.integer.value[1];
23696 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23697 adm_send_compressed_device_latency(port_id,
23698 idx, latency);
23699 break;
23700 default:
23701 pr_info("%s, device pp param %d not supported\n",
23702 __func__, pp_id);
23703 break;
23704 }
23705 }
23706 }
23707 return 0;
23708}
23709
23710static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23711 struct snd_ctl_elem_value *ucontrol)
23712{
23713 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
23714 return 0;
23715}
23716
23717static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
23718 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
23719 0, 3, msm_routing_get_device_pp_params_mixer,
23720 msm_routing_put_device_pp_params_mixer),
23721};
23722
23723static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
23724 struct snd_ctl_elem_value *ucontrol)
23725{
23726 ucontrol->value.integer.value[0] =
23727 core_get_license_status(ASM_MEDIA_FMT_APTX);
23728 pr_debug("%s: status %ld\n", __func__,
23729 ucontrol->value.integer.value[0]);
23730 return 0;
23731}
23732
23733static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
23734 struct snd_ctl_elem_value *ucontrol)
23735{
23736 int32_t status = 0;
23737
23738 status = core_set_license(ucontrol->value.integer.value[0],
23739 APTX_CLASSIC_DEC_LICENSE_ID);
23740 pr_debug("%s: status %d\n", __func__, status);
23741 return status;
23742}
23743
23744static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
23745 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
23746 0xFFFF, 0, msm_aptx_dec_license_control_get,
23747 msm_aptx_dec_license_control_put),
23748};
23749
23750static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
23751 struct snd_ctl_elem_info *uinfo)
23752{
23753 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
23754 uinfo->count = sizeof(be_dai_name_table);
23755 return 0;
23756}
23757
23758static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
23759 unsigned int __user *bytes,
23760 unsigned int size)
23761{
23762 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023763 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023764
23765 if (size < sizeof(be_dai_name_table)) {
23766 pr_err("%s: invalid size %d requested, returning\n",
23767 __func__, size);
23768 ret = -EINVAL;
23769 goto done;
23770 }
23771
23772 /*
23773 * Fill be_dai_name_table from msm_bedais table to reduce code changes
23774 * needed when adding new backends
23775 */
23776 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23777 be_dai_name_table[i].be_id = i;
23778 strlcpy(be_dai_name_table[i].be_name,
23779 msm_bedais[i].name,
23780 LPASS_BE_NAME_MAX_LENGTH);
23781 }
23782
23783 ret = copy_to_user(bytes, &be_dai_name_table,
23784 sizeof(be_dai_name_table));
23785 if (ret) {
23786 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
23787 ret = -EFAULT;
23788 }
23789
23790done:
23791 return ret;
23792}
23793
23794static const struct snd_kcontrol_new
23795 msm_routing_be_dai_name_table_mixer_controls[] = {
23796 {
23797 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
23798 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
23799 .info = msm_routing_be_dai_name_table_info,
23800 .name = "Backend DAI Name Table",
23801 .tlv.c = snd_soc_bytes_tlv_callback,
23802 .private_value = (unsigned long) &(struct soc_bytes_ext) {
23803 .max = sizeof(be_dai_name_table),
23804 .get = msm_routing_be_dai_name_table_tlv_get,
23805 }
23806 },
23807};
23808
23809static int msm_routing_stereo_channel_reverse_control_get(
23810 struct snd_kcontrol *kcontrol,
23811 struct snd_ctl_elem_value *ucontrol)
23812{
23813 ucontrol->value.integer.value[0] = swap_ch;
23814 pr_debug("%s: Swap channel value: %ld\n", __func__,
23815 ucontrol->value.integer.value[0]);
23816 return 0;
23817}
23818
23819static int msm_routing_stereo_channel_reverse_control_put(
23820 struct snd_kcontrol *kcontrol,
23821 struct snd_ctl_elem_value *ucontrol)
23822{
23823 int i, idx, be_index, port_id;
23824 int ret = 0;
23825 unsigned long copp;
23826
23827 pr_debug("%s Swap channel value:%ld\n", __func__,
23828 ucontrol->value.integer.value[0]);
23829
23830 swap_ch = ucontrol->value.integer.value[0];
23831
23832 mutex_lock(&routing_lock);
23833 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
23834 port_id = msm_bedais[be_index].port_id;
23835 if (!msm_bedais[be_index].active)
23836 continue;
23837
23838 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
23839 MSM_FRONTEND_DAI_MM_SIZE) {
23840 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
23841 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23842 if (!test_bit(idx, &copp))
23843 continue;
23844
23845 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
23846 __func__, port_id, idx);
23847 ret = adm_swap_speaker_channels(
23848 port_id, idx,
23849 msm_bedais[be_index].sample_rate,
23850 swap_ch);
23851 if (ret) {
23852 pr_err("%s:Swap_channel failed, err=%d\n",
23853 __func__, ret);
23854 goto done;
23855 }
23856 }
23857 }
23858 }
23859done:
23860 mutex_unlock(&routing_lock);
23861 return ret;
23862}
23863
23864static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
23865 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
23866 1, 0, msm_routing_stereo_channel_reverse_control_get,
23867 msm_routing_stereo_channel_reverse_control_put),
23868};
23869
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023870static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
23871 struct snd_ctl_elem_info *uinfo)
23872{
23873 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
23874 uinfo->count = 1;
23875 return 0;
23876}
23877
23878static int msm_routing_instance_id_support_put(
23879 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23880{
23881 bool supported = ucontrol->value.integer.value[0] ? true : false;
23882
23883 q6common_update_instance_id_support(supported);
23884 return 0;
23885}
23886
23887static int msm_routing_instance_id_support_get(
23888 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23889{
23890 bool supported = false;
23891
23892 supported = q6common_is_instance_id_supported();
23893 ucontrol->value.integer.value[0] = supported ? 1 : 0;
23894
23895 return 0;
23896}
23897
23898static const struct snd_kcontrol_new
23899 msm_routing_feature_support_mixer_controls[] = {
23900 {
23901 .access = SNDRV_CTL_ELEM_ACCESS_READ |
23902 SNDRV_CTL_ELEM_ACCESS_WRITE,
23903 .info = msm_routing_instance_id_support_info,
23904 .name = "Instance ID Support",
23905 .put = msm_routing_instance_id_support_put,
23906 .get = msm_routing_instance_id_support_get,
23907 },
23908};
23909
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023910static const struct snd_pcm_ops msm_routing_pcm_ops = {
23911 .hw_params = msm_pcm_routing_hw_params,
23912 .close = msm_pcm_routing_close,
23913 .prepare = msm_pcm_routing_prepare,
23914};
23915
23916/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080023917static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023918{
Meng Wangee084a02018-09-04 16:11:58 +080023919 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023920 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080023921 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023922 ARRAY_SIZE(intercon));
23923
Meng Wangee084a02018-09-04 16:11:58 +080023924 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023925
Meng Wangee084a02018-09-04 16:11:58 +080023926 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023927 ARRAY_SIZE(lsm_controls));
23928
Meng Wangee084a02018-09-04 16:11:58 +080023929 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023930 ARRAY_SIZE(aanc_slim_0_rx_mux));
23931
Meng Wangee084a02018-09-04 16:11:58 +080023932 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053023933 ARRAY_SIZE(aanc_noise_level));
23934
Meng Wangee084a02018-09-04 16:11:58 +080023935 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023936 ARRAY_SIZE(msm_voc_session_controls));
23937
Meng Wangee084a02018-09-04 16:11:58 +080023938 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023939 ARRAY_SIZE(app_type_cfg_controls));
23940
Meng Wangee084a02018-09-04 16:11:58 +080023941 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023942 ARRAY_SIZE(lsm_app_type_cfg_controls));
23943
Meng Wangee084a02018-09-04 16:11:58 +080023944 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070023945 ARRAY_SIZE(module_cfg_controls));
23946
Meng Wangee084a02018-09-04 16:11:58 +080023947 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023948 stereo_to_custom_stereo_controls,
23949 ARRAY_SIZE(stereo_to_custom_stereo_controls));
23950
Meng Wangee084a02018-09-04 16:11:58 +080023951 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023952 ARRAY_SIZE(ec_ref_param_controls));
23953
Meng Wangee084a02018-09-04 16:11:58 +080023954 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023955 ARRAY_SIZE(channel_mixer_controls));
23956
Meng Wangee084a02018-09-04 16:11:58 +080023957 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023958
Meng Wangee084a02018-09-04 16:11:58 +080023959 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023960
Meng Wangee084a02018-09-04 16:11:58 +080023961 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023962
Meng Wangee084a02018-09-04 16:11:58 +080023963 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023964 use_ds1_or_ds2_controls,
23965 ARRAY_SIZE(use_ds1_or_ds2_controls));
23966
Meng Wangee084a02018-09-04 16:11:58 +080023967 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023968 device_pp_params_mixer_controls,
23969 ARRAY_SIZE(device_pp_params_mixer_controls));
23970
Meng Wangee084a02018-09-04 16:11:58 +080023971 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023972 msm_routing_be_dai_name_table_mixer_controls,
23973 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
23974
Meng Wangee084a02018-09-04 16:11:58 +080023975 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023976 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080023977 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023978 ARRAY_SIZE(adm_channel_config_controls));
23979
Meng Wangee084a02018-09-04 16:11:58 +080023980 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023981 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080023982 snd_soc_add_component_controls(component,
23983 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023984 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080023985 snd_soc_add_component_controls(
23986 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023987 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
23988
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023989 return 0;
23990}
23991
23992int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
23993{
23994 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
23995}
23996
23997void msm_routing_pcm_free(struct snd_pcm *pcm)
23998{
23999 msm_pcm_routing_hwdep_free(pcm);
24000}
24001
Meng Wangee084a02018-09-04 16:11:58 +080024002static struct snd_soc_component_driver msm_soc_routing_component = {
24003 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024004 .ops = &msm_routing_pcm_ops,
24005 .probe = msm_routing_probe,
24006 .pcm_new = msm_routing_pcm_new,
24007 .pcm_free = msm_routing_pcm_free,
24008};
24009
24010static int msm_routing_pcm_probe(struct platform_device *pdev)
24011{
24012
24013 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080024014 return snd_soc_register_component(&pdev->dev,
24015 &msm_soc_routing_component,
24016 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024017}
24018
24019static int msm_routing_pcm_remove(struct platform_device *pdev)
24020{
Meng Wangee084a02018-09-04 16:11:58 +080024021 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024022 return 0;
24023}
24024
24025static const struct of_device_id msm_pcm_routing_dt_match[] = {
24026 {.compatible = "qcom,msm-pcm-routing"},
24027 {}
24028};
24029MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
24030
24031static struct platform_driver msm_routing_pcm_driver = {
24032 .driver = {
24033 .name = "msm-pcm-routing",
24034 .owner = THIS_MODULE,
24035 .of_match_table = msm_pcm_routing_dt_match,
24036 },
24037 .probe = msm_routing_pcm_probe,
24038 .remove = msm_routing_pcm_remove,
24039};
24040
24041int msm_routing_check_backend_enabled(int fedai_id)
24042{
24043 int i;
24044
24045 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
24046 /* bad ID assigned in machine driver */
24047 pr_err("%s: bad MM ID\n", __func__);
24048 return 0;
24049 }
24050 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24051 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
24052 return msm_bedais[i].active;
24053 }
24054 return 0;
24055}
24056
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024057static int get_cal_type_index(int32_t cal_type)
24058{
24059 int ret = -EINVAL;
24060
24061 switch (cal_type) {
24062 case ADM_TOPOLOGY_CAL_TYPE:
24063 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
24064 break;
24065 case ADM_LSM_TOPOLOGY_CAL_TYPE:
24066 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
24067 break;
24068 default:
24069 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
24070 }
24071 return ret;
24072}
24073
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024074static int msm_routing_set_cal(int32_t cal_type,
24075 size_t data_size, void *data)
24076{
24077 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024078 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024079 pr_debug("%s\n", __func__);
24080
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024081 cal_index = get_cal_type_index(cal_type);
24082 if (cal_index < 0) {
24083 pr_err("%s: Could not get cal index %d\n",
24084 __func__, cal_index);
24085 ret = -EINVAL;
24086 goto done;
24087 }
24088
24089 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024090 if (ret < 0) {
24091 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
24092 __func__, ret, cal_type);
24093 ret = -EINVAL;
24094 goto done;
24095 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024096 /* Pre-load if it is ADM topology */
24097 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
24098 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
24099 msm_routing_load_topology(data_size, data);
24100 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024101done:
24102 return ret;
24103}
24104
24105static void msm_routing_delete_cal_data(void)
24106{
24107 pr_debug("%s\n", __func__);
24108
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024109 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024110}
24111
24112static int msm_routing_init_cal_data(void)
24113{
24114 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024115 struct cal_type_info cal_type_info[] = {
24116 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024117 {NULL, NULL, NULL,
24118 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024119 {NULL, NULL, cal_utils_match_buf_num} },
24120
24121 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
24122 {NULL, NULL, NULL,
24123 msm_routing_set_cal, NULL, NULL} },
24124 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024125 };
24126 pr_debug("%s\n", __func__);
24127
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024128 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
24129 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024130 if (ret < 0) {
24131 pr_err("%s: could not create cal type!\n",
24132 __func__);
24133 ret = -EINVAL;
24134 goto err;
24135 }
24136
24137 return ret;
24138err:
24139 msm_routing_delete_cal_data();
24140 return ret;
24141}
24142
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053024143int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024144{
24145 mutex_init(&routing_lock);
24146 if (msm_routing_init_cal_data())
24147 pr_err("%s: could not init cal data!\n", __func__);
24148
24149 afe_set_routing_callback(
24150 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
24151
24152 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24153 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
24154
24155 return platform_driver_register(&msm_routing_pcm_driver);
24156}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024157
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053024158void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024159{
24160 msm_routing_delete_cal_data();
24161 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24162 mutex_destroy(&routing_lock);
24163 platform_driver_unregister(&msm_routing_pcm_driver);
24164}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024165
24166MODULE_DESCRIPTION("MSM routing platform driver");
24167MODULE_LICENSE("GPL v2");