blob: 7fd3589b6b07726a00cd0ab7a8b648ee6d2b2e45 [file] [log] [blame]
Meng Wang43bbb872018-12-10 12:32:05 +08001// SPDX-License-Identifier: GPL-2.0-only
Xiaoyu Yef439aed2019-01-02 16:40:01 -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(
1540 msm_bedais[be_id].port_id,
1541 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",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003107"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303108"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303109"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303110"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3111"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3112"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303113"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3114"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",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303121};
3122
3123static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3124 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3125static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3126 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3127static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3128 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3129static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3130 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3131
3132static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3133 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3134static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3135 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3136static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3137 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3138static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3139 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3140static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3141 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3142static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3143 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3144static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3145 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3146static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3147 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3148
3149static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3150 unsigned int channels,
3151 unsigned int items, const char *const names[])
3152{
3153 if (uinfo->value.enumerated.item >= items)
3154 uinfo->value.enumerated.item = items - 1;
3155
3156 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3157 sizeof(uinfo->value.enumerated.name),
3158 "ALSA: too long item name '%s'\n",
3159 names[uinfo->value.enumerated.item]);
3160 strlcpy(uinfo->value.enumerated.name,
3161 names[uinfo->value.enumerated.item],
3162 sizeof(uinfo->value.enumerated.name));
3163 return 0;
3164}
3165
3166static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3167 struct snd_ctl_elem_info *uinfo)
3168{
3169 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3170
3171 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3172 uinfo->count = 1;
3173
3174 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3175 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3176
3177 return 0;
3178}
3179static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3180 struct snd_ctl_elem_value *ucontrol)
3181{
3182 u16 fe_id = 0;
3183
3184 fe_id = ((struct soc_enum *)
3185 kcontrol->private_value)->shift_l;
3186 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3187 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3188 return -EINVAL;
3189 }
3190
3191 pr_debug("%s: FE %d %s\n", __func__,
3192 fe_id,
3193 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3194 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3195 return 0;
3196}
3197
3198static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3199 struct snd_ctl_elem_value *ucontrol)
3200{
3201 u16 fe_id = 0;
3202
3203 fe_id = ((struct soc_enum *)
3204 kcontrol->private_value)->shift_l;
3205 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3206 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3207 return -EINVAL;
3208 }
3209
3210 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3211 pr_debug("%s: %s FE %d\n", __func__,
3212 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3213 fe_id);
3214 return 0;
3215}
3216
3217static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3218 struct snd_ctl_elem_info *uinfo)
3219{
3220 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3221
3222 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3223 uinfo->count = 1;
3224
3225 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3226 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3227
3228 return 0;
3229}
3230
3231static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3232 struct snd_ctl_elem_value *ucontrol)
3233{
3234 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3235 u16 fe_id = 0, in_ch = 0;
3236
3237 fe_id = e->shift_l;
3238 in_ch = e->shift_r;
3239 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3240 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3241 return -EINVAL;
3242 }
3243 if (in_ch >= ADM_MAX_CHANNELS) {
3244 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3245 return -EINVAL;
3246 }
3247
3248 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3249 return 1;
3250}
3251
3252static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3253 struct snd_ctl_elem_value *ucontrol)
3254{
3255 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3256 u16 fe_id = 0, in_ch = 0;
3257
3258 fe_id = e->shift_l;
3259 in_ch = e->shift_r;
3260 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3261 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3262 return -EINVAL;
3263 }
3264 if (in_ch >= ADM_MAX_CHANNELS) {
3265 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3266 return -EINVAL;
3267 }
3268
3269 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3270 return 1;
3271}
3272
3273
3274static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3275 struct snd_ctl_elem_info *uinfo)
3276{
3277 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3278 uinfo->count = ADM_MAX_CHANNELS;
3279 uinfo->value.integer.min = 0;
3280 uinfo->value.integer.max = WEIGHT_0_DB;
3281
3282 return 0;
3283}
3284
3285static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3286 struct snd_ctl_elem_value *ucontrol)
3287{
3288 u16 fe_id = 0, out_ch = 0;
3289 int i, weight;
3290
3291 fe_id = ((struct soc_multi_mixer_control *)
3292 kcontrol->private_value)->shift;
3293 out_ch = ((struct soc_multi_mixer_control *)
3294 kcontrol->private_value)->rshift;
3295 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3296 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3297 return -EINVAL;
3298 }
3299 if (out_ch >= ADM_MAX_CHANNELS) {
3300 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3301 return -EINVAL;
3302 }
3303
3304 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3305 __func__, fe_id,
3306 ucontrol->value.integer.value[0],
3307 ucontrol->value.integer.value[1],
3308 ucontrol->value.integer.value[2],
3309 ucontrol->value.integer.value[3],
3310 ucontrol->value.integer.value[4],
3311 ucontrol->value.integer.value[5],
3312 ucontrol->value.integer.value[6],
3313 ucontrol->value.integer.value[7]);
3314
3315 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3316 weight = ucontrol->value.integer.value[i];
3317 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3318 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3319 __func__, fe_id, out_ch, i,
3320 channel_mixer[fe_id].channel_weight[out_ch][i]);
3321 }
3322
3323 return 0;
3324}
3325
3326static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3327 struct snd_ctl_elem_value *ucontrol)
3328{
3329 u16 fe_id = 0, out_ch = 0;
3330 int i;
3331
3332 fe_id = ((struct soc_multi_mixer_control *)
3333 kcontrol->private_value)->shift;
3334 out_ch = ((struct soc_multi_mixer_control *)
3335 kcontrol->private_value)->rshift;
3336 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3337 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3338 return -EINVAL;
3339 }
3340 if (out_ch >= ADM_MAX_CHANNELS) {
3341 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3342 return -EINVAL;
3343 }
3344
3345 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3346 ucontrol->value.integer.value[i] =
3347 channel_mixer[fe_id].channel_weight[out_ch][i];
3348
3349 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3350 __func__, fe_id,
3351 ucontrol->value.integer.value[0],
3352 ucontrol->value.integer.value[1],
3353 ucontrol->value.integer.value[2],
3354 ucontrol->value.integer.value[3],
3355 ucontrol->value.integer.value[4],
3356 ucontrol->value.integer.value[5],
3357 ucontrol->value.integer.value[6],
3358 ucontrol->value.integer.value[7]);
3359
3360 return 0;
3361}
3362
3363static const struct snd_kcontrol_new channel_mixer_controls[] = {
3364 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3365 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3366 msm_pcm_get_channel_rule_index,
3367 msm_pcm_put_channel_rule_index),
3368 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3369 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3370 msm_pcm_get_channel_rule_index,
3371 msm_pcm_put_channel_rule_index),
3372 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3373 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3374 msm_pcm_get_channel_rule_index,
3375 msm_pcm_put_channel_rule_index),
3376 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3377 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3378 msm_pcm_get_channel_rule_index,
3379 msm_pcm_put_channel_rule_index),
3380 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3381 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3382 msm_pcm_get_channel_rule_index,
3383 msm_pcm_put_channel_rule_index),
3384 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3385 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3386 msm_pcm_get_channel_rule_index,
3387 msm_pcm_put_channel_rule_index),
3388
3389 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3390 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3391 msm_pcm_get_out_chs,
3392 msm_pcm_put_out_chs),
3393 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3394 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3395 msm_pcm_get_out_chs,
3396 msm_pcm_put_out_chs),
3397 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3398 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3399 msm_pcm_get_out_chs,
3400 msm_pcm_put_out_chs),
3401 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3402 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3403 msm_pcm_get_out_chs,
3404 msm_pcm_put_out_chs),
3405 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3406 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3407 msm_pcm_get_out_chs,
3408 msm_pcm_put_out_chs),
3409 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3410 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3411 msm_pcm_get_out_chs,
3412 msm_pcm_put_out_chs),
3413 {
3414 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3415 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3416 .name = "MultiMedia1 Channel Mixer",
3417 .info = msm_pcm_channel_mixer_info,
3418 .get = msm_pcm_channel_mixer_get,
3419 .put = msm_pcm_channel_mixer_put,
3420 .private_value = (unsigned long)&(mm1_channel_mux)
3421 },
3422 {
3423 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3424 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3425 .name = "MultiMedia2 Channel Mixer",
3426 .info = msm_pcm_channel_mixer_info,
3427 .get = msm_pcm_channel_mixer_get,
3428 .put = msm_pcm_channel_mixer_put,
3429 .private_value = (unsigned long)&(mm2_channel_mux)
3430 },
3431 {
3432 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3433 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3434 .name = "MultiMedia3 Channel Mixer",
3435 .info = msm_pcm_channel_mixer_info,
3436 .get = msm_pcm_channel_mixer_get,
3437 .put = msm_pcm_channel_mixer_put,
3438 .private_value = (unsigned long)&(mm3_channel_mux)
3439 },
3440 {
3441 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3442 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3443 .name = "MultiMedia4 Channel Mixer",
3444 .info = msm_pcm_channel_mixer_info,
3445 .get = msm_pcm_channel_mixer_get,
3446 .put = msm_pcm_channel_mixer_put,
3447 .private_value = (unsigned long)&(mm4_channel_mux)
3448 },
3449 {
3450 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3451 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3452 .name = "MultiMedia1 Output Channel1",
3453 .info = msm_pcm_channel_weight_info,
3454 .get = msm_pcm_channel_weight_get,
3455 .put = msm_pcm_channel_weight_put,
3456 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3457 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3458 },
3459 {
3460 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3461 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3462 .name = "MultiMedia1 Output Channel2",
3463 .info = msm_pcm_channel_weight_info,
3464 .get = msm_pcm_channel_weight_get,
3465 .put = msm_pcm_channel_weight_put,
3466 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3467 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3468 },
3469 {
3470 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3471 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3472 .name = "MultiMedia1 Output Channel3",
3473 .info = msm_pcm_channel_weight_info,
3474 .get = msm_pcm_channel_weight_get,
3475 .put = msm_pcm_channel_weight_put,
3476 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3477 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3478 },
3479 {
3480 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3481 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3482 .name = "MultiMedia1 Output Channel4",
3483 .info = msm_pcm_channel_weight_info,
3484 .get = msm_pcm_channel_weight_get,
3485 .put = msm_pcm_channel_weight_put,
3486 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3487 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3488 },
3489 {
3490 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3491 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3492 .name = "MultiMedia1 Output Channel5",
3493 .info = msm_pcm_channel_weight_info,
3494 .get = msm_pcm_channel_weight_get,
3495 .put = msm_pcm_channel_weight_put,
3496 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3497 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3498 },
3499 {
3500 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3501 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3502 .name = "MultiMedia1 Output Channel6",
3503 .info = msm_pcm_channel_weight_info,
3504 .get = msm_pcm_channel_weight_get,
3505 .put = msm_pcm_channel_weight_put,
3506 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3507 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3508 },
3509 {
3510 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3511 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3512 .name = "MultiMedia1 Output Channel7",
3513 .info = msm_pcm_channel_weight_info,
3514 .get = msm_pcm_channel_weight_get,
3515 .put = msm_pcm_channel_weight_put,
3516 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3517 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3518 },
3519 {
3520 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3521 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3522 .name = "MultiMedia1 Output Channel8",
3523 .info = msm_pcm_channel_weight_info,
3524 .get = msm_pcm_channel_weight_get,
3525 .put = msm_pcm_channel_weight_put,
3526 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3527 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3528 },
3529 {
3530 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3531 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3532 .name = "MultiMedia2 Output Channel1",
3533 .info = msm_pcm_channel_weight_info,
3534 .get = msm_pcm_channel_weight_get,
3535 .put = msm_pcm_channel_weight_put,
3536 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3537 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3538 },
3539 {
3540 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3541 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3542 .name = "MultiMedia2 Output Channel2",
3543 .info = msm_pcm_channel_weight_info,
3544 .get = msm_pcm_channel_weight_get,
3545 .put = msm_pcm_channel_weight_put,
3546 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3547 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3548 },
3549 {
3550 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3551 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3552 .name = "MultiMedia2 Output Channel3",
3553 .info = msm_pcm_channel_weight_info,
3554 .get = msm_pcm_channel_weight_get,
3555 .put = msm_pcm_channel_weight_put,
3556 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3557 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3558 },
3559 {
3560 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3561 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3562 .name = "MultiMedia3 Output Channel1",
3563 .info = msm_pcm_channel_weight_info,
3564 .get = msm_pcm_channel_weight_get,
3565 .put = msm_pcm_channel_weight_put,
3566 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3567 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3568 },
3569 {
3570 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3571 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3572 .name = "MultiMedia3 Output Channel2",
3573 .info = msm_pcm_channel_weight_info,
3574 .get = msm_pcm_channel_weight_get,
3575 .put = msm_pcm_channel_weight_put,
3576 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3577 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3578 },
3579 {
3580 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3581 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3582 .name = "MultiMedia1 Channel1",
3583 .info = msm_pcm_channel_input_be_info,
3584 .get = msm_pcm_channel_input_be_get,
3585 .put = msm_pcm_channel_input_be_put,
3586 .private_value = (unsigned long)&(mm1_ch1_enum)
3587 },
3588 {
3589 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3590 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3591 .name = "MultiMedia1 Channel2",
3592 .info = msm_pcm_channel_input_be_info,
3593 .get = msm_pcm_channel_input_be_get,
3594 .put = msm_pcm_channel_input_be_put,
3595 .private_value = (unsigned long)&(mm1_ch2_enum)
3596 },
3597 {
3598 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3599 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3600 .name = "MultiMedia1 Channel3",
3601 .info = msm_pcm_channel_input_be_info,
3602 .get = msm_pcm_channel_input_be_get,
3603 .put = msm_pcm_channel_input_be_put,
3604 .private_value = (unsigned long)&(mm1_ch3_enum)
3605 },
3606 {
3607 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3608 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3609 .name = "MultiMedia1 Channel4",
3610 .info = msm_pcm_channel_input_be_info,
3611 .get = msm_pcm_channel_input_be_get,
3612 .put = msm_pcm_channel_input_be_put,
3613 .private_value = (unsigned long)&(mm1_ch4_enum)
3614 },
3615 {
3616 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3617 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3618 .name = "MultiMedia1 Channel5",
3619 .info = msm_pcm_channel_input_be_info,
3620 .get = msm_pcm_channel_input_be_get,
3621 .put = msm_pcm_channel_input_be_put,
3622 .private_value = (unsigned long)&(mm1_ch5_enum)
3623 },
3624 {
3625 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3626 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3627 .name = "MultiMedia1 Channel6",
3628 .info = msm_pcm_channel_input_be_info,
3629 .get = msm_pcm_channel_input_be_get,
3630 .put = msm_pcm_channel_input_be_put,
3631 .private_value = (unsigned long)&(mm1_ch6_enum)
3632 },
3633 {
3634 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3635 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3636 .name = "MultiMedia1 Channel7",
3637 .info = msm_pcm_channel_input_be_info,
3638 .get = msm_pcm_channel_input_be_get,
3639 .put = msm_pcm_channel_input_be_put,
3640 .private_value = (unsigned long)&(mm1_ch7_enum)
3641 },
3642 {
3643 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3644 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3645 .name = "MultiMedia1 Channel8",
3646 .info = msm_pcm_channel_input_be_info,
3647 .get = msm_pcm_channel_input_be_get,
3648 .put = msm_pcm_channel_input_be_put,
3649 .private_value = (unsigned long)&(mm1_ch8_enum)
3650 },
3651};
3652static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3653 struct snd_ctl_elem_value *ucontrol)
3654{
3655 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3656 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3657 ucontrol->value.integer.value[0]);
3658 return 0;
3659}
3660
3661static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3662 struct snd_ctl_elem_value *ucontrol)
3663{
3664 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3665 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3666 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3667 return 0;
3668}
3669
3670static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3671 "Four", "Five", "Six", "Seven", "Eight"};
3672
3673static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3674 struct snd_ctl_elem_value *ucontrol)
3675{
3676 switch (msm_ec_ref_bit_format) {
3677 case SNDRV_PCM_FORMAT_S24_LE:
3678 ucontrol->value.integer.value[0] = 2;
3679 break;
3680 case SNDRV_PCM_FORMAT_S16_LE:
3681 ucontrol->value.integer.value[0] = 1;
3682 break;
3683 default:
3684 ucontrol->value.integer.value[0] = 0;
3685 break;
3686 }
3687 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3688 __func__, ucontrol->value.integer.value[0]);
3689 return 0;
3690}
3691
3692static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3693 struct snd_ctl_elem_value *ucontrol)
3694{
3695 u16 bit_width = 0;
3696
3697 switch (ucontrol->value.integer.value[0]) {
3698 case 2:
3699 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3700 break;
3701 case 1:
3702 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3703 break;
3704 default:
3705 msm_ec_ref_bit_format = 0;
3706 break;
3707 }
3708
3709 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3710 bit_width = 16;
3711 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3712 bit_width = 24;
3713
3714 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3715 __func__, msm_ec_ref_bit_format);
3716 adm_ec_ref_rx_bit_width(bit_width);
3717 return 0;
3718}
3719
3720static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3721
3722static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3723 struct snd_ctl_elem_value *ucontrol)
3724{
3725 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3726 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3727 __func__, ucontrol->value.integer.value[0]);
3728 return 0;
3729}
3730
3731static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3732 struct snd_ctl_elem_value *ucontrol)
3733{
3734 switch (ucontrol->value.integer.value[0]) {
3735 case 0:
3736 msm_ec_ref_sampling_rate = 0;
3737 break;
3738 case 1:
3739 msm_ec_ref_sampling_rate = 8000;
3740 break;
3741 case 2:
3742 msm_ec_ref_sampling_rate = 16000;
3743 break;
3744 case 3:
3745 msm_ec_ref_sampling_rate = 32000;
3746 break;
3747 case 4:
3748 msm_ec_ref_sampling_rate = 44100;
3749 break;
3750 case 5:
3751 msm_ec_ref_sampling_rate = 48000;
3752 break;
3753 case 6:
3754 msm_ec_ref_sampling_rate = 96000;
3755 break;
3756 case 7:
3757 msm_ec_ref_sampling_rate = 192000;
3758 break;
3759 case 8:
3760 msm_ec_ref_sampling_rate = 384000;
3761 break;
3762 default:
3763 msm_ec_ref_sampling_rate = 48000;
3764 break;
3765 }
3766 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3767 __func__, msm_ec_ref_sampling_rate);
3768 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3769 return 0;
3770}
3771
3772static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3773 "32000", "44100", "48000", "96000", "192000", "384000"};
3774
3775static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3776 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3777 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3778 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3779};
3780
3781static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3782 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3783 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3784 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3785 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3786 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3787 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3788};
3789
3790static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3791 struct snd_ctl_elem_value *ucontrol)
3792{
3793 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3794 mutex_lock(&routing_lock);
3795 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3796 mutex_unlock(&routing_lock);
3797 return 0;
3798}
3799
3800static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3801 struct snd_ctl_elem_value *ucontrol)
3802{
3803 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303804 struct snd_soc_dapm_widget *widget =
3805 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303806 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3807 struct snd_soc_dapm_update *update = NULL;
3808
3809
3810 mutex_lock(&routing_lock);
3811 switch (ucontrol->value.integer.value[0]) {
3812 case 0:
3813 msm_route_ec_ref_rx = 0;
3814 ec_ref_port_id = AFE_PORT_INVALID;
3815 break;
3816 case 1:
3817 msm_route_ec_ref_rx = 1;
3818 ec_ref_port_id = SLIMBUS_0_RX;
3819 break;
3820 case 2:
3821 msm_route_ec_ref_rx = 2;
3822 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3823 break;
3824 case 3:
3825 msm_route_ec_ref_rx = 3;
3826 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3827 break;
3828 case 4:
3829 msm_route_ec_ref_rx = 4;
3830 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3831 break;
3832 case 5:
3833 msm_route_ec_ref_rx = 5;
3834 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3835 break;
3836 case 6:
3837 msm_route_ec_ref_rx = 6;
3838 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3839 break;
3840 case 7:
3841 msm_route_ec_ref_rx = 7;
3842 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3843 break;
3844 case 9:
3845 msm_route_ec_ref_rx = 9;
3846 ec_ref_port_id = SLIMBUS_5_RX;
3847 break;
3848 case 10:
3849 msm_route_ec_ref_rx = 10;
3850 ec_ref_port_id = SLIMBUS_1_TX;
3851 break;
3852 case 11:
3853 msm_route_ec_ref_rx = 11;
3854 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3855 break;
3856 case 12:
3857 msm_route_ec_ref_rx = 12;
3858 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3859 break;
3860 case 13:
3861 msm_route_ec_ref_rx = 13;
3862 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3863 break;
3864 case 14:
3865 msm_route_ec_ref_rx = 14;
3866 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3867 break;
3868 case 15:
3869 msm_route_ec_ref_rx = 15;
3870 ec_ref_port_id = SLIMBUS_6_RX;
3871 break;
3872 case 16:
3873 msm_route_ec_ref_rx = 16;
3874 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3875 break;
3876 case 17:
3877 msm_route_ec_ref_rx = 17;
3878 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3879 break;
3880 case 18:
3881 msm_route_ec_ref_rx = 18;
3882 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3883 break;
3884 case 19:
3885 msm_route_ec_ref_rx = 19;
3886 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3887 break;
3888 case 20:
3889 msm_route_ec_ref_rx = 20;
3890 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3891 break;
3892 case 21:
3893 msm_route_ec_ref_rx = 21;
3894 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3895 break;
3896 case 22:
3897 msm_route_ec_ref_rx = 22;
3898 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3899 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003900 case 23:
3901 msm_route_ec_ref_rx = 23;
3902 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3903 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303904 case 24:
3905 msm_route_ec_ref_rx = 24;
3906 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3907 break;
3908 case 25:
3909 msm_route_ec_ref_rx = 25;
3910 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3911 break;
3912 case 26:
3913 msm_route_ec_ref_rx = 26;
3914 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3915 break;
3916 case 27:
3917 msm_route_ec_ref_rx = 27;
3918 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3919 break;
3920 case 28:
3921 msm_route_ec_ref_rx = 28;
3922 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3923 break;
Zhou Songb167db12018-07-02 17:14:00 +08003924 case 29:
3925 msm_route_ec_ref_rx = 29;
3926 ec_ref_port_id = SLIMBUS_7_RX;
3927 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303928 case 30:
3929 msm_route_ec_ref_rx = 30;
3930 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3931 break;
3932 case 31:
3933 msm_route_ec_ref_rx = 31;
3934 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3935 break;
3936 case 32:
3937 msm_route_ec_ref_rx = 32;
3938 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3939 break;
3940 case 33:
3941 msm_route_ec_ref_rx = 33;
3942 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3943 break;
3944 case 34:
3945 msm_route_ec_ref_rx = 34;
3946 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3947 break;
Derek Chen2bb55772018-10-24 00:17:15 -07003948 case 35:
3949 msm_route_ec_ref_rx = 35;
3950 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
3951 break;
3952 case 36:
3953 msm_route_ec_ref_rx = 36;
3954 ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
3955 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303956 default:
3957 msm_route_ec_ref_rx = 0; /* NONE */
3958 pr_err("%s EC ref rx %ld not valid\n",
3959 __func__, ucontrol->value.integer.value[0]);
3960 ec_ref_port_id = AFE_PORT_INVALID;
3961 break;
3962 }
Surendar Karkae7507512018-07-20 15:46:54 +05303963 msm_ec_ref_port_id = ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303964 adm_ec_ref_rx_id(ec_ref_port_id);
3965 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3966 __func__, msm_route_ec_ref_rx);
3967 mutex_unlock(&routing_lock);
3968 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3969 msm_route_ec_ref_rx, e, update);
3970 return 0;
3971}
3972
3973static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3974 "PRI_MI2S_TX", "SEC_MI2S_TX",
3975 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3976 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3977 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3978 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303979 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3980 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003981 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303982 "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 -07003983 "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 +05303984};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303985
3986static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3987 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3988};
3989
3990static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3991 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3992 msm_route_ec_ref_rx_enum[0],
3993 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3994
3995static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3996 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3997 msm_route_ec_ref_rx_enum[0],
3998 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3999
4000static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
4001 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
4002 msm_route_ec_ref_rx_enum[0],
4003 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4004
4005static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
4006 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
4007 msm_route_ec_ref_rx_enum[0],
4008 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4009
4010static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
4011 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
4012 msm_route_ec_ref_rx_enum[0],
4013 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4014
4015static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4016 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4017 msm_route_ec_ref_rx_enum[0],
4018 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4019
4020static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4021 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4022 msm_route_ec_ref_rx_enum[0],
4023 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4024
4025static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4026 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4027 msm_route_ec_ref_rx_enum[0],
4028 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4029
Asish Bhattacharya34504582017-08-08 12:55:01 +05304030static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4031 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4032 msm_route_ec_ref_rx_enum[0],
4033 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4034
Laxminath Kasam38070be2017-08-17 18:21:59 +05304035static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4036 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4037 msm_route_ec_ref_rx_enum[0],
4038 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4039
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304040static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4041 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4042 msm_route_ec_ref_rx_enum[0],
4043 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4044
4045static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4046 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4047 msm_route_ec_ref_rx_enum[0],
4048 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4049
4050static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4051 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4052 msm_route_ec_ref_rx_enum[0],
4053 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4054
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304055static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4056 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4057 msm_route_ec_ref_rx_enum[0],
4058 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4059
4060static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4061 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4062 msm_route_ec_ref_rx_enum[0],
4063 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4064
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304065static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4066 struct snd_ctl_elem_value *ucontrol)
4067{
4068 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4069
4070 mutex_lock(&routing_lock);
4071 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4072 mutex_unlock(&routing_lock);
4073 return 0;
4074}
4075
4076static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4077 struct snd_ctl_elem_value *ucontrol)
4078{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304079 struct snd_soc_dapm_widget *widget =
4080 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304081 int mux = ucontrol->value.enumerated.item[0];
4082 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4083 int ret = 1;
4084 bool state = true;
4085 uint16_t ext_ec_ref_port_id;
4086 struct snd_soc_dapm_update *update = NULL;
4087
4088 if (mux >= e->items) {
4089 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4090 return -EINVAL;
4091 }
4092
4093 mutex_lock(&routing_lock);
4094 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4095
4096 switch (msm_route_ext_ec_ref) {
4097 case EXT_EC_REF_PRI_MI2S_TX:
4098 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4099 break;
4100 case EXT_EC_REF_SEC_MI2S_TX:
4101 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4102 break;
4103 case EXT_EC_REF_TERT_MI2S_TX:
4104 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4105 break;
4106 case EXT_EC_REF_QUAT_MI2S_TX:
4107 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4108 break;
4109 case EXT_EC_REF_QUIN_MI2S_TX:
4110 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4111 break;
4112 case EXT_EC_REF_SLIM_1_TX:
4113 ext_ec_ref_port_id = SLIMBUS_1_TX;
4114 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004115 case EXT_EC_REF_SEC_TDM_TX:
4116 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4117 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304118 case EXT_EC_REF_NONE:
4119 default:
4120 ext_ec_ref_port_id = AFE_PORT_INVALID;
4121 state = false;
4122 break;
4123 }
4124
4125 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4126 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4127
4128 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4129 mutex_unlock(&routing_lock);
4130 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4131 update);
4132 } else {
4133 ret = -EINVAL;
4134 mutex_unlock(&routing_lock);
4135 }
4136 return ret;
4137}
4138
4139static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4140 "SEC_MI2S_TX", "TERT_MI2S_TX",
4141 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004142 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304143
4144static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4145 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4146};
4147
4148static const struct snd_kcontrol_new voc_ext_ec_mux =
4149 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4150 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4151
4152
4153static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004154 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4155 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304156 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004158 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4159 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304160 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004162 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4163 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304164 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004166 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4167 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304168 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004170 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4171 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304172 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004174 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4175 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304176 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004178 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4179 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304180 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004182 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4183 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304184 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004186 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4187 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304188 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004190 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4191 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304192 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004194 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4195 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304196 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004198 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4199 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304200 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004202 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4203 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304204 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004206 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4207 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304208 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004210 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4211 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304212 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004214 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4215 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304216 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004218 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4219 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304220 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004222 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4223 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304224 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004226 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4227 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304228 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4229 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304230 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4231 MSM_BACKEND_DAI_PRI_I2S_RX,
4232 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004234 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4235 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304236 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004238 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4239 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304240 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4241 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304242};
4243
4244static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004245 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4246 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304247 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004249 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4250 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304251 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004253 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4254 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304255 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004257 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4258 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304259 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004261 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4262 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304263 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004265 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4266 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304267 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004269 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4270 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304271 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004273 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4274 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304275 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004277 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4278 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304279 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004281 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4282 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304283 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004285 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4286 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304287 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004289 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4290 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304291 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004293 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4294 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304295 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004297 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4298 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304299 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004301 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4302 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304303 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004305 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4306 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304307 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004309 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4310 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304311 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004313 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4314 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304315 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004317 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4318 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304319 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4320 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304321 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4322 MSM_BACKEND_DAI_SEC_I2S_RX,
4323 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004325 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4326 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304327 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004329 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4330 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304331 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4332 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304333};
4334
Ralf Herzc8701f72018-06-20 11:37:35 +02004335static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004336 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004337 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304338 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004340 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004341 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304342 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004344 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004345 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304346 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004348 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004349 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304350 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004352 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004353 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304354 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004356 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004357 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304358 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004360 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004361 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304362 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004364 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004365 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304366 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004368 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004369 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304370 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004372 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004373 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304374 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004376 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004377 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304378 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004380 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004381 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304382 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004384 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004385 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304386 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004388 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004389 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304390 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004392 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004393 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304394 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004396 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004397 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304398 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004400 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004401 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304402 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004404 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004405 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304406 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004408 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004409 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304410 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4411 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304412 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4413 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4414 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004416 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004417 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304418 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004420 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004421 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4422 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4423 msm_routing_put_audio_mixer),
4424};
4425
4426static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4427 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4428 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4429 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4430 msm_routing_put_audio_mixer),
4431 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4432 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4433 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4434 msm_routing_put_audio_mixer),
4435 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4436 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4437 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4438 msm_routing_put_audio_mixer),
4439 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4440 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4441 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4442 msm_routing_put_audio_mixer),
4443 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4444 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4445 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4446 msm_routing_put_audio_mixer),
4447 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4448 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4449 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4450 msm_routing_put_audio_mixer),
4451 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4452 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4453 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4454 msm_routing_put_audio_mixer),
4455 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4456 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4457 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4458 msm_routing_put_audio_mixer),
4459 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4460 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4461 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4462 msm_routing_put_audio_mixer),
4463 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4464 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4465 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4466 msm_routing_put_audio_mixer),
4467 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4468 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4469 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4470 msm_routing_put_audio_mixer),
4471 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4472 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4473 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4474 msm_routing_put_audio_mixer),
4475 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4476 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4477 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4478 msm_routing_put_audio_mixer),
4479 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4480 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4481 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4482 msm_routing_put_audio_mixer),
4483 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4484 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4485 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4486 msm_routing_put_audio_mixer),
4487 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4488 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4489 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4490 msm_routing_put_audio_mixer),
4491 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4492 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4493 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4494 msm_routing_put_audio_mixer),
4495 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4496 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4497 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4498 msm_routing_put_audio_mixer),
4499 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4500 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4501 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4502 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304503 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4504 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4505 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4506 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004507 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4508 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4509 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4510 msm_routing_put_audio_mixer),
4511 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4512 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304513 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4514 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304515};
4516
4517static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004518 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4519 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304520 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004522 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4523 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304524 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004526 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4527 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304528 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004530 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4531 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304532 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004534 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4535 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304536 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004538 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4539 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304540 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004542 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4543 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304544 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004546 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4547 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304548 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004550 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4551 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304552 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004554 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4555 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304556 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004558 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4559 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304560 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004562 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4563 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304564 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004566 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4567 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304568 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004570 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4571 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304572 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004574 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4575 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304576 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004578 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4579 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304580 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4581 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304582 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4583 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4584 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4585 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304586};
4587
4588static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004589 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4590 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304591 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004593 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4594 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304595 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004597 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4598 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304599 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004601 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4602 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304603 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004605 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4606 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304607 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004609 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4610 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304611 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004613 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4614 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304615 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004617 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4618 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304619 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004621 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4622 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304623 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004625 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4626 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304627 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004629 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4630 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304631 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004633 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4634 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304635 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004637 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4638 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304639 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004641 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4642 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304643 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004645 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4646 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304647 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004649 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4650 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304651 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004653 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4654 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304655 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004657 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4658 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304659 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004661 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4662 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304663 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4664 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304665 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4666 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4667 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004669 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4670 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304671 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004673 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4674 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304675 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4676 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304677};
4678
4679static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004680 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4681 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304682 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004684 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4685 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304686 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004688 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4689 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304690 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004692 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4693 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304694 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004696 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4697 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304698 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004700 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4701 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304702 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004704 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4705 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304706 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004708 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4709 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304710 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004712 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4713 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304714 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004716 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4717 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304718 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004720 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4721 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304722 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004724 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4725 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304726 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004728 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4729 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304730 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004732 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4733 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304734 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004736 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4737 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304738 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004740 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4741 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304742 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004744 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4745 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304746 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004748 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4749 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304750 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004752 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4753 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304754 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4755 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304756 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4757 MSM_BACKEND_DAI_SLIMBUS_0_RX,
4758 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004760 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4761 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304762 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004764 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4765 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304766 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4767 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304768};
4769
4770static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004771 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4772 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304773 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004775 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4776 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304777 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004779 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4780 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304781 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004783 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4784 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304785 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004787 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4788 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304789 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004791 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4792 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304793 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004795 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4796 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304797 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004799 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4800 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304801 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004803 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4804 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304805 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004807 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4808 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304809 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004811 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4812 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304813 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004815 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4816 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304817 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004819 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4820 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304821 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004823 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4824 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304825 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004827 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4828 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304829 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004831 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4832 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304833 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004835 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4836 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304837 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004839 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4840 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304841 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004843 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4844 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304845 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4846 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304847 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4848 MSM_BACKEND_DAI_MI2S_RX,
4849 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004851 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4852 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304853 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004855 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4856 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304857 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4858 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304859};
4860
4861static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004862 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4863 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304864 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004866 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4867 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304868 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004870 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4871 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304872 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004874 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4875 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304876 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004878 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4879 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304880 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004882 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4883 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304884 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004886 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4887 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304888 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004890 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4891 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304892 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004894 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4895 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304896 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004898 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4899 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304900 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004902 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4903 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304904 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004906 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4907 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304908 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004910 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4911 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304912 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004914 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4915 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304916 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004918 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4919 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304920 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004922 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4923 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304924 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004926 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4927 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304928 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004930 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4931 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304932 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004934 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4935 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304936 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4937 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304938 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4939 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
4940 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004942 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4943 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304944 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004946 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4947 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304948 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4949 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304950};
4951
4952static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004953 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4954 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304955 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004957 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4958 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304959 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004961 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4962 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304963 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004965 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4966 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304967 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004969 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4970 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304971 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004973 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4974 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304975 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004977 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4978 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304979 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004981 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4982 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304983 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004985 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4986 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304987 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004989 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4990 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304991 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004993 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4994 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304995 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004997 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4998 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304999 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005001 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5002 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305003 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005005 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5006 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305007 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005009 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5010 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305011 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005013 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5014 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305015 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005017 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5018 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305019 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005021 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5022 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305023 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005025 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5026 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305027 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5028 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305029 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5030 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5031 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005033 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5034 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305035 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005037 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5038 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305039 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5040 msm_routing_put_audio_mixer),
5041
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305042};
5043
5044static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005045 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5046 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305047 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005049 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5050 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305051 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005053 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5054 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305055 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005057 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5058 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305059 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005061 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5062 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305063 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005065 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5066 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305067 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005069 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5070 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305071 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005073 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5074 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305075 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005077 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5078 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305079 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005081 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5082 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305083 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005085 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5086 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305087 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005089 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5090 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305091 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005093 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5094 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305095 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005097 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5098 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305099 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005101 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5102 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305103 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005105 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5106 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305107 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005109 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5110 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305111 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5112 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305113 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5114 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5115 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005117 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5118 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305119 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005121 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5122 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305123 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5124 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305125};
5126
5127static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005128 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5129 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305130 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5131 msm_routing_put_audio_mixer),
5132};
5133
5134static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005135 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5136 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305137 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005139 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5140 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305141 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005143 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5144 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305145 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005147 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5148 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305149 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005151 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5152 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305153 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005155 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5156 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305157 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005159 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5160 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305161 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005163 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5164 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305165 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005167 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5168 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305169 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005171 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5172 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305173 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005175 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5176 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305177 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005179 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5180 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305181 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005183 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5184 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305185 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005187 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5188 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305189 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005191 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5192 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305193 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005195 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5196 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305197 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005199 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5200 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305201 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005203 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5204 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305205 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005207 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5208 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305209 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5210 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305211 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5212 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5213 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005215 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5216 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305217 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005219 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5220 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305221 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5222 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305223};
5224
5225static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005226 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5227 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305228 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005230 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5231 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305232 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005234 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5235 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305236 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005238 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5239 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305240 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005242 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5243 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305244 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005246 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5247 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305248 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005250 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5251 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305252 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005254 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5255 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305256 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005258 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5259 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305260 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005262 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5263 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305264 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005266 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5267 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305268 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005270 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5271 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305272 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005274 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5275 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305276 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005278 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5279 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305280 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005282 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5283 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305284 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005286 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5287 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305288 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005290 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5291 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305292 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005294 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5295 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305296 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005298 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5299 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305300 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5301 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305302 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5303 MSM_BACKEND_DAI_PRI_MI2S_RX,
5304 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005306 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5307 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305308 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005310 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5311 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305312 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5313 msm_routing_put_audio_mixer),
5314
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305315};
5316
5317static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005318 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5319 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305320 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005322 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5323 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305324 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005326 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5327 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305328 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005330 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5331 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305332 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005334 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5335 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305336 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005338 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5339 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305340 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005342 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5343 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305344 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005346 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5347 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305348 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005350 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5351 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305352 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005354 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5355 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305356 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005358 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5359 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305360 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005362 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5363 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305364 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005366 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5367 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305368 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005370 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5371 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305372 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005374 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5375 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305376 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005378 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5379 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305380 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5381 msm_routing_put_audio_mixer),
5382};
5383
5384static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005385 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5386 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305387 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005389 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5390 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305391 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005393 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5394 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305395 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005397 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5398 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305399 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005401 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5402 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305403 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005405 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5406 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305407 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005409 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5410 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305411 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005413 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5414 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305415 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005417 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5418 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305419 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005421 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5422 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305423 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005425 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5426 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305427 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005429 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5430 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305431 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005433 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5434 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305435 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005437 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5438 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305439 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005441 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5442 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305443 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005445 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5446 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305447 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5448 msm_routing_put_audio_mixer),
5449};
5450
5451static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005452 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5453 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305454 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005456 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5457 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305458 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005460 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5461 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305462 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005464 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5465 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305466 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005468 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5469 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305470 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005472 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5473 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305474 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005476 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5477 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305478 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005480 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5481 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305482 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005484 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5485 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305486 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005488 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5489 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305490 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005492 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5493 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305494 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005496 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5497 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305498 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005500 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5501 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305502 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005504 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5505 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305506 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005508 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5509 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305510 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005512 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5513 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305514 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005516 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5517 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305518 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005520 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5521 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305522 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005524 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5525 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305526 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5527 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305528 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5529 MSM_BACKEND_DAI_HDMI_RX,
5530 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005532 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5533 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305534 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005536 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5537 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305538 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5539 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305540};
5541
5542static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005543 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5544 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305545 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005547 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5548 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305549 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005551 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5552 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305553 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005555 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5556 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305557 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005559 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5560 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305561 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005563 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5564 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305565 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005567 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5568 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305569 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005571 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5572 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305573 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005575 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5576 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305577 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005579 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5580 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305581 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005583 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5584 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305585 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005587 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5588 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305589 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005591 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5592 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305593 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005595 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5596 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305597 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005599 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5600 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305601 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005603 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5604 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305605 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5606 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305607 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5608 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5609 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5610 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305611};
5612
Karthikeyan Mani57550082018-05-03 18:43:58 -07005613static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5614 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5615 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5616 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5617 msm_routing_put_audio_mixer),
5618 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5619 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5620 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5621 msm_routing_put_audio_mixer),
5622 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5623 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5624 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5625 msm_routing_put_audio_mixer),
5626 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5627 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5628 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5629 msm_routing_put_audio_mixer),
5630 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5631 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5632 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5633 msm_routing_put_audio_mixer),
5634 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5635 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5636 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5637 msm_routing_put_audio_mixer),
5638 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5639 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5640 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5641 msm_routing_put_audio_mixer),
5642 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5643 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5644 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5645 msm_routing_put_audio_mixer),
5646 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5647 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5648 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5649 msm_routing_put_audio_mixer),
5650 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5651 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5652 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5653 msm_routing_put_audio_mixer),
5654 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5655 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5656 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5657 msm_routing_put_audio_mixer),
5658 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5659 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5660 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5661 msm_routing_put_audio_mixer),
5662 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5663 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5664 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5665 msm_routing_put_audio_mixer),
5666 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5667 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5668 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5669 msm_routing_put_audio_mixer),
5670 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5671 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5672 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5673 msm_routing_put_audio_mixer),
5674 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5675 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5676 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5677 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305678 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5679 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5680 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5681 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005682};
5683
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305684 /* incall music delivery mixer */
5685static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005686 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5687 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305688 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005690 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5691 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305692 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005694 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5695 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305696 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005698 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5699 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305700 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5701 msm_routing_put_audio_mixer),
5702};
5703
5704static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005705 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5706 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305707 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005709 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5710 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305711 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005713 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5714 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305715 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005717 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5718 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305719 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5720 msm_routing_put_audio_mixer),
5721};
5722
5723static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005724 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5725 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305726 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005728 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5729 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305730 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005732 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5733 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305734 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005736 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5737 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305738 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5739 msm_routing_put_audio_mixer),
5740};
5741
5742static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005743 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5744 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305745 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005747 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5748 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305749 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005751 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5752 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305753 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005755 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5756 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305757 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005759 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5760 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305761 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005763 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5764 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305765 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005767 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5768 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305769 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005771 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5772 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305773 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005775 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5776 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305777 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005779 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5780 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305781 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005783 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5784 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305785 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005787 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5788 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305789 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005791 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5792 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305793 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005795 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5796 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305797 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005799 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5800 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305801 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005803 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5804 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305805 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5806 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305807 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5808 MSM_BACKEND_DAI_SLIMBUS_6_RX,
5809 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5810 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305811};
5812
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305813static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5814 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5815 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5816 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5817 msm_routing_put_audio_mixer),
5818 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5819 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5820 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5821 msm_routing_put_audio_mixer),
5822 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5823 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5824 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5825 msm_routing_put_audio_mixer),
5826 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5827 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5828 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5829 msm_routing_put_audio_mixer),
5830 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5831 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5832 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5833 msm_routing_put_audio_mixer),
5834 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5835 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5836 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5837 msm_routing_put_audio_mixer),
5838 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5839 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5840 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5841 msm_routing_put_audio_mixer),
5842 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5843 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5844 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5845 msm_routing_put_audio_mixer),
5846 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5847 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5848 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5849 msm_routing_put_audio_mixer),
5850 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5851 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5852 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5853 msm_routing_put_audio_mixer),
5854 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5855 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5856 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5857 msm_routing_put_audio_mixer),
5858 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5859 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5860 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5861 msm_routing_put_audio_mixer),
5862 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5863 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5864 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5865 msm_routing_put_audio_mixer),
5866 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5867 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5868 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5869 msm_routing_put_audio_mixer),
5870 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5871 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5872 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5873 msm_routing_put_audio_mixer),
5874 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5875 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5876 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5877 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305878 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5879 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5880 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5881 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305882};
5883
5884static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5885 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5886 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5887 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5888 msm_routing_put_audio_mixer),
5889 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5890 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5891 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5892 msm_routing_put_audio_mixer),
5893 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5894 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5895 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5896 msm_routing_put_audio_mixer),
5897 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5898 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5899 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5900 msm_routing_put_audio_mixer),
5901 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5902 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5903 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5904 msm_routing_put_audio_mixer),
5905 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5906 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5907 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5908 msm_routing_put_audio_mixer),
5909 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5910 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5911 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5912 msm_routing_put_audio_mixer),
5913 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5914 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5915 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5916 msm_routing_put_audio_mixer),
5917 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5918 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5919 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5920 msm_routing_put_audio_mixer),
5921 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5922 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5923 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5924 msm_routing_put_audio_mixer),
5925 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5926 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5927 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5928 msm_routing_put_audio_mixer),
5929 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5930 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5931 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5932 msm_routing_put_audio_mixer),
5933 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5934 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5935 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5936 msm_routing_put_audio_mixer),
5937 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5938 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5939 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5940 msm_routing_put_audio_mixer),
5941 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5942 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5943 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5944 msm_routing_put_audio_mixer),
5945 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5946 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5947 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5948 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305949 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5950 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5951 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5952 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305953};
5954
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305955static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5956 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5957 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5958 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5959 msm_routing_put_audio_mixer),
5960 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5961 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5962 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5963 msm_routing_put_audio_mixer),
5964 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5965 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5966 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5967 msm_routing_put_audio_mixer),
5968 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5969 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5970 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5971 msm_routing_put_audio_mixer),
5972 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5973 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5974 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5975 msm_routing_put_audio_mixer),
5976 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5977 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5978 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5979 msm_routing_put_audio_mixer),
5980 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5981 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5982 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5983 msm_routing_put_audio_mixer),
5984 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5985 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5986 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5987 msm_routing_put_audio_mixer),
5988 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5989 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5990 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5991 msm_routing_put_audio_mixer),
5992 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5993 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5994 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5995 msm_routing_put_audio_mixer),
5996 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5997 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5998 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5999 msm_routing_put_audio_mixer),
6000 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6001 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6002 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6003 msm_routing_put_audio_mixer),
6004 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6005 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6006 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6007 msm_routing_put_audio_mixer),
6008 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6009 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6010 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6011 msm_routing_put_audio_mixer),
6012 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6013 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6014 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6015 msm_routing_put_audio_mixer),
6016 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6017 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6018 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6019 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306020 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6021 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6022 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6023 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306024};
6025
6026static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6027 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6028 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6029 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6030 msm_routing_put_audio_mixer),
6031 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6032 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6033 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6034 msm_routing_put_audio_mixer),
6035 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6036 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6037 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6038 msm_routing_put_audio_mixer),
6039 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6040 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6041 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6042 msm_routing_put_audio_mixer),
6043 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6044 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6045 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6046 msm_routing_put_audio_mixer),
6047 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6048 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6049 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6050 msm_routing_put_audio_mixer),
6051 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6052 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6053 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6054 msm_routing_put_audio_mixer),
6055 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6056 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6057 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6058 msm_routing_put_audio_mixer),
6059 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6060 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6061 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6062 msm_routing_put_audio_mixer),
6063 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6064 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6065 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6066 msm_routing_put_audio_mixer),
6067 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6068 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6069 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6070 msm_routing_put_audio_mixer),
6071 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6072 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6073 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6074 msm_routing_put_audio_mixer),
6075 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6076 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6077 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6078 msm_routing_put_audio_mixer),
6079 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6080 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6081 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6082 msm_routing_put_audio_mixer),
6083 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6084 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6085 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6086 msm_routing_put_audio_mixer),
6087 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6088 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6089 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6090 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306091 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6092 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6093 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6094 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306095};
6096
6097static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6098 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6099 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6100 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6101 msm_routing_put_audio_mixer),
6102 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6103 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6104 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6105 msm_routing_put_audio_mixer),
6106 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6107 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6108 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6109 msm_routing_put_audio_mixer),
6110 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6111 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6112 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6113 msm_routing_put_audio_mixer),
6114 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6115 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6116 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6117 msm_routing_put_audio_mixer),
6118 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6119 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6120 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6121 msm_routing_put_audio_mixer),
6122 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6123 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6124 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6125 msm_routing_put_audio_mixer),
6126 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6127 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6128 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6129 msm_routing_put_audio_mixer),
6130 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6131 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6132 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6133 msm_routing_put_audio_mixer),
6134 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6135 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6136 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6137 msm_routing_put_audio_mixer),
6138 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6139 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6140 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6141 msm_routing_put_audio_mixer),
6142 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6143 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6144 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6145 msm_routing_put_audio_mixer),
6146 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6147 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6148 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6149 msm_routing_put_audio_mixer),
6150 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6151 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6152 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6153 msm_routing_put_audio_mixer),
6154 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6155 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6156 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6157 msm_routing_put_audio_mixer),
6158 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6159 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6160 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6161 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306162 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6163 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6164 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6165 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306166};
6167
6168static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6169 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6170 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6171 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6172 msm_routing_put_audio_mixer),
6173 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6174 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6175 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6176 msm_routing_put_audio_mixer),
6177 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6178 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6179 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6180 msm_routing_put_audio_mixer),
6181 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6182 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6183 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6184 msm_routing_put_audio_mixer),
6185 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6186 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6187 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6188 msm_routing_put_audio_mixer),
6189 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6190 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6191 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6192 msm_routing_put_audio_mixer),
6193 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6194 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6195 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6196 msm_routing_put_audio_mixer),
6197 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6198 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6199 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6200 msm_routing_put_audio_mixer),
6201 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6202 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6203 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6204 msm_routing_put_audio_mixer),
6205 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6206 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6207 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6208 msm_routing_put_audio_mixer),
6209 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6210 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6211 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6212 msm_routing_put_audio_mixer),
6213 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6214 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6215 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6216 msm_routing_put_audio_mixer),
6217 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6218 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6219 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6220 msm_routing_put_audio_mixer),
6221 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6222 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6223 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6224 msm_routing_put_audio_mixer),
6225 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6226 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6227 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6228 msm_routing_put_audio_mixer),
6229 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6230 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6231 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6232 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306233 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6234 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6235 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6236 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306237};
6238
6239static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6240 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6241 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6242 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6243 msm_routing_put_audio_mixer),
6244 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6245 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6246 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6247 msm_routing_put_audio_mixer),
6248 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6249 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6250 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6251 msm_routing_put_audio_mixer),
6252 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6253 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6254 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6255 msm_routing_put_audio_mixer),
6256 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6257 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6258 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6259 msm_routing_put_audio_mixer),
6260 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6261 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6262 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6263 msm_routing_put_audio_mixer),
6264 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6265 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6266 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6267 msm_routing_put_audio_mixer),
6268 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6269 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6270 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6271 msm_routing_put_audio_mixer),
6272 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6273 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6274 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6275 msm_routing_put_audio_mixer),
6276 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6277 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6278 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6279 msm_routing_put_audio_mixer),
6280 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6281 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6282 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6283 msm_routing_put_audio_mixer),
6284 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6285 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6286 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6287 msm_routing_put_audio_mixer),
6288 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6289 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6290 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6291 msm_routing_put_audio_mixer),
6292 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6293 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6294 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6295 msm_routing_put_audio_mixer),
6296 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6297 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6298 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6299 msm_routing_put_audio_mixer),
6300 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6301 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6302 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6303 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306304 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6305 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6306 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6307 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306308};
6309
6310static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6311 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6312 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6313 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6314 msm_routing_put_audio_mixer),
6315 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6316 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6317 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6318 msm_routing_put_audio_mixer),
6319 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6320 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6321 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6322 msm_routing_put_audio_mixer),
6323 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6324 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6325 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6326 msm_routing_put_audio_mixer),
6327 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6328 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6329 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6330 msm_routing_put_audio_mixer),
6331 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6332 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6333 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6334 msm_routing_put_audio_mixer),
6335 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6336 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6337 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6338 msm_routing_put_audio_mixer),
6339 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6340 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6341 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6342 msm_routing_put_audio_mixer),
6343 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6344 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6345 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6346 msm_routing_put_audio_mixer),
6347 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6348 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6349 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6350 msm_routing_put_audio_mixer),
6351 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6352 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6353 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6354 msm_routing_put_audio_mixer),
6355 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6356 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6357 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6358 msm_routing_put_audio_mixer),
6359 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6360 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6361 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6362 msm_routing_put_audio_mixer),
6363 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6364 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6365 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6366 msm_routing_put_audio_mixer),
6367 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6368 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6369 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6370 msm_routing_put_audio_mixer),
6371 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6372 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6373 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6374 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306375 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6376 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6377 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6378 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306379};
6380
6381static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6382 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6383 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6384 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6385 msm_routing_put_audio_mixer),
6386 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6387 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6388 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6389 msm_routing_put_audio_mixer),
6390 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6391 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6392 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6393 msm_routing_put_audio_mixer),
6394 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6395 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6396 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6397 msm_routing_put_audio_mixer),
6398 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6399 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6400 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6401 msm_routing_put_audio_mixer),
6402 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6403 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6404 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6405 msm_routing_put_audio_mixer),
6406 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6407 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6408 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6409 msm_routing_put_audio_mixer),
6410 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6411 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6412 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6413 msm_routing_put_audio_mixer),
6414 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6415 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6416 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6417 msm_routing_put_audio_mixer),
6418 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6419 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6420 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6421 msm_routing_put_audio_mixer),
6422 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6423 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6424 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6425 msm_routing_put_audio_mixer),
6426 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6427 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6428 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6429 msm_routing_put_audio_mixer),
6430 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6431 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6432 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6433 msm_routing_put_audio_mixer),
6434 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6435 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6436 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6437 msm_routing_put_audio_mixer),
6438 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6439 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6440 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6441 msm_routing_put_audio_mixer),
6442 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6443 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6444 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6445 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306446 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6447 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6448 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6449 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306450};
6451
6452static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6453 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6454 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6455 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6456 msm_routing_put_audio_mixer),
6457 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6458 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6459 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6460 msm_routing_put_audio_mixer),
6461 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6462 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6463 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6464 msm_routing_put_audio_mixer),
6465 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6466 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6467 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6468 msm_routing_put_audio_mixer),
6469 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6470 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6471 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6472 msm_routing_put_audio_mixer),
6473 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6474 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6475 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6476 msm_routing_put_audio_mixer),
6477 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6478 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6479 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6480 msm_routing_put_audio_mixer),
6481 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6482 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6483 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6484 msm_routing_put_audio_mixer),
6485 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6486 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6487 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6488 msm_routing_put_audio_mixer),
6489 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6490 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6491 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6492 msm_routing_put_audio_mixer),
6493 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6494 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6495 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6496 msm_routing_put_audio_mixer),
6497 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6498 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6499 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6500 msm_routing_put_audio_mixer),
6501 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6502 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6503 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6504 msm_routing_put_audio_mixer),
6505 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6506 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6507 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6508 msm_routing_put_audio_mixer),
6509 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6510 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6511 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6512 msm_routing_put_audio_mixer),
6513 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6514 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6515 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6516 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306517 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6518 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6519 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6520 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306521};
6522
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306523static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006524 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6525 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306526 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006528 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6529 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306530 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006532 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6533 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306534 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006536 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6537 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306538 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006540 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6541 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306542 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006544 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6545 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306546 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006548 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6549 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306550 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006552 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6553 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306554 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006556 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6557 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306558 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006560 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6561 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306562 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006564 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6565 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306566 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006568 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6569 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306570 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006572 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6573 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306574 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006576 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6577 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306578 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006580 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6581 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306582 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006584 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6585 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306586 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6587 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306588 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6589 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6590 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6591 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306592};
6593
Surendar Karka3ef3d812018-09-28 18:52:35 +05306594static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6595 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6596 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6597 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6598 msm_routing_put_audio_mixer),
6599 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6600 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6601 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6602 msm_routing_put_audio_mixer),
6603 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6604 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6605 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6606 msm_routing_put_audio_mixer),
6607 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6608 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6609 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6610 msm_routing_put_audio_mixer),
6611 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6612 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6613 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6614 msm_routing_put_audio_mixer),
6615 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6616 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6617 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6618 msm_routing_put_audio_mixer),
6619 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6620 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6621 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6622 msm_routing_put_audio_mixer),
6623 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6624 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6625 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6626 msm_routing_put_audio_mixer),
6627 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6628 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6629 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6630 msm_routing_put_audio_mixer),
6631 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6632 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6633 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6634 msm_routing_put_audio_mixer),
6635 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6636 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6637 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6638 msm_routing_put_audio_mixer),
6639 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6640 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6641 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6642 msm_routing_put_audio_mixer),
6643 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6644 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6645 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6646 msm_routing_put_audio_mixer),
6647 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6648 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6649 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6650 msm_routing_put_audio_mixer),
6651 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6652 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6653 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6654 msm_routing_put_audio_mixer),
6655 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6656 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6657 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6658 msm_routing_put_audio_mixer),
6659 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6660 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6661 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6662 msm_routing_put_audio_mixer),
6663};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306664static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006665 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6666 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306667 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006669 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6670 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306671 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006673 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6674 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306675 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006677 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6678 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306679 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006681 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6682 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306683 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006685 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6686 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306687 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006689 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6690 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306691 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006693 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6694 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306695 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006697 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6698 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306699 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006701 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6702 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306703 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006705 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6706 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306707 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006709 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6710 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306711 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006713 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6714 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306715 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006717 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6718 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306719 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006721 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6722 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306723 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006725 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6726 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306727 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6728 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306729 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6730 MSM_BACKEND_DAI_USB_RX,
6731 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6732 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306733};
6734
6735static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006736 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6737 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306738 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006740 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6741 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306742 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006744 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6745 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306746 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006748 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6749 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306750 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006752 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6753 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306754 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006756 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6757 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306758 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006760 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6761 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306762 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006764 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6765 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306766 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006768 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6769 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306770 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006772 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6773 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306774 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006776 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6777 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306778 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006780 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6781 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306782 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006784 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6785 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306786 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006788 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6789 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306790 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006792 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6793 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306794 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006796 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6797 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306798 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006800 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6801 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306802 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006804 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6805 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306806 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006808 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6809 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306810 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6811 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306812 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6813 MSM_BACKEND_DAI_INT_BT_SCO_RX,
6814 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006816 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6817 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306818 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006820 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6821 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306822 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6823 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306824};
6825
6826static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006827 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6828 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306829 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006831 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6832 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306833 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006835 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6836 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306837 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006839 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6840 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306841 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006843 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6844 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306845 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006847 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6848 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306849 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006851 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6852 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306853 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006855 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6856 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306857 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006859 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6860 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306861 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006863 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6864 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306865 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006867 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6868 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306869 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006871 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6872 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306873 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006875 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6876 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306877 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006879 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6880 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306881 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006883 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6884 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306885 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006887 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6888 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306889 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6890 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306891 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6892 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
6893 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6894 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306895};
6896
6897static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006898 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6899 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306900 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006902 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6903 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306904 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006906 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6907 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306908 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006910 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6911 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306912 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006914 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6915 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306916 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006918 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6919 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306920 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006922 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6923 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306924 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006926 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6927 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306928 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006930 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6931 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306932 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006934 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6935 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306936 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006938 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6939 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306940 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006942 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6943 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306944 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006946 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6947 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306948 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006950 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6951 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306952 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006954 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6955 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306956 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006958 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6959 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306960 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006962 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6963 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306964 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006966 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6967 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306968 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006970 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6971 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306972 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6973 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306974 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6975 MSM_BACKEND_DAI_INT_FM_RX,
6976 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006978 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6979 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306980 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006982 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6983 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306984 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6985 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306986};
6987
6988static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006989 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6990 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306991 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006993 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6994 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306995 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006997 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6998 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306999 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007001 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7002 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307003 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007005 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7006 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307007 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007009 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7010 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307011 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007013 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7014 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307015 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007017 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7018 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307019 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007021 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7022 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307023 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007025 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7026 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307027 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007029 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7030 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307031 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007033 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7034 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307035 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007037 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7038 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307039 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007041 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7042 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307043 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007045 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7046 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307047 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007049 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7050 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307051 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007053 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7054 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307055 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007057 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7058 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307059 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007061 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7062 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307063 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7064 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307065 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7066 MSM_BACKEND_DAI_AFE_PCM_RX,
7067 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007069 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7070 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307071 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007073 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7074 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307075 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7076 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307077};
7078
7079static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007080 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7081 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307082 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007084 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7085 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307086 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007088 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7089 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307090 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007092 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7093 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307094 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007096 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7097 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307098 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007100 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7101 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307102 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007104 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7105 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307106 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007108 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7109 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307110 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007112 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7113 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307114 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007116 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7117 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307118 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007120 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7121 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307122 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007124 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7125 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307126 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007128 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7129 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307130 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007132 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7133 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307134 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007136 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7137 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307138 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007140 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7141 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307142 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007144 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7145 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307146 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007148 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7149 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307150 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007152 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7153 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307154 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7155 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007156 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7157 MSM_BACKEND_DAI_AUXPCM_RX,
7158 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7159 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307160 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7161 MSM_BACKEND_DAI_AUXPCM_RX,
7162 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007164 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7165 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307166 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007168 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7169 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307170 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7171 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307172};
7173
7174static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007175 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7176 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307177 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007179 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7180 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307181 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007183 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7184 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307185 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007187 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7188 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307189 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007191 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7192 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307193 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007195 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7196 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307197 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007199 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7200 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307201 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007203 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7204 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307205 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007207 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7208 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307209 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007211 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7212 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307213 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007215 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7216 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307217 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007219 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7220 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307221 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007223 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7224 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307225 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007227 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7228 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307229 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007231 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7232 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307233 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007235 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7236 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307237 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007239 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7240 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307241 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007243 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7244 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307245 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007247 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7248 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307249 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7250 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007251 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7253 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307255 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7256 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7257 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007259 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307261 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007263 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7264 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307265 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7266 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307267};
7268
7269static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007270 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7271 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307272 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007274 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7275 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307276 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007278 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307280 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007282 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307284 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007286 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307288 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007290 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307292 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007294 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307296 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007298 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307300 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007302 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307304 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007306 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307308 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007310 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307312 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007314 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307316 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007318 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307320 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007322 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307324 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007326 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307328 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007330 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307332 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307334 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7336 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307338};
7339
7340static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007341 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7342 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307343 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007345 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7346 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307347 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007349 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7350 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307351 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007353 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7354 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307355 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007357 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7358 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307359 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007361 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7362 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307363 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007365 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7366 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307367 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007369 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7370 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307371 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007373 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307375 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007377 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307379 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007381 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307383 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007385 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007389 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007393 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007397 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307405 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7407 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307409};
7410
Rohit Kumara5077932017-09-10 22:05:05 +05307411static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007412 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7413 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307414 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007416 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7417 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307418 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007420 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7421 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307422 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007424 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7425 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307426 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007428 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7429 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307430 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007432 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7433 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307434 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007436 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7437 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307438 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007440 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7441 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307442 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007444 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7445 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307446 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007448 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7449 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307450 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007452 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307454 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007456 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307458 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007460 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307462 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007464 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307466 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007468 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7469 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307470 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007472 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307476 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7478 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307480};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307481static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007482 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7483 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307484 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007486 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7487 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307488 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007490 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7491 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307492 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007494 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7495 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307496 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007498 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7499 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307500 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007502 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7503 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307504 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007506 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7507 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307508 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007510 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7511 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307512 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007514 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7515 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307516 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007518 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7519 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307520 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007522 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7523 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307524 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007526 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7527 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307528 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007530 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7531 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307532 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007534 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7535 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307536 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007538 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7539 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307540 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007542 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7543 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307544 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7545 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007546 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7547 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7548 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7549 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307550};
7551
7552static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007553 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7554 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307555 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007557 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7558 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307559 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007561 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7562 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307563 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007565 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7566 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307567 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007569 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7570 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307571 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007573 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7574 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307575 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007577 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7578 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307579 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007581 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7582 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307583 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007585 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7586 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307587 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007589 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7590 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307591 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007593 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7594 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307595 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007597 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7598 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307599 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007601 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7602 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307603 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007605 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7606 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307607 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007609 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7610 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307611 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007613 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7614 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307615 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7616 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007617 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7618 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7619 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7620 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307621};
7622
7623static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007624 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7625 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307626 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007628 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7629 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307630 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007632 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7633 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307634 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007636 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7637 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307638 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007640 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7641 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307642 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007644 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7645 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307646 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007648 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7649 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307650 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007652 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7653 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307654 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007656 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7657 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307658 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007660 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7661 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307662 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007664 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7665 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307666 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007668 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7669 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307670 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007672 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7673 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307674 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007676 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7677 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307678 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007680 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7681 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307682 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007684 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7685 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307686 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7687 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007688 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7689 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7690 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7691 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307692};
7693
7694static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007695 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7696 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307697 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007699 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7700 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307701 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007703 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7704 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307705 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007707 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7708 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307709 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007711 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7712 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307713 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007715 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7716 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307717 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007719 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7720 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307721 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007723 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7724 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307725 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007727 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7728 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307729 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007731 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7732 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307733 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007735 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7736 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307737 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007739 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7740 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307741 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007743 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7744 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307745 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007747 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7748 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307749 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007751 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7752 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307753 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007755 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7756 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307757 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7758 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007759 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7760 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7761 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7762 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307763};
7764
7765static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007766 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7767 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307768 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007770 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7771 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307772 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007774 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7775 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307776 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007778 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7779 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307780 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007782 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7783 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307784 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007786 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7787 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307788 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007790 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7791 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307792 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007794 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7795 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307796 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007798 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7799 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307800 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007802 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7803 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307804 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007806 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7807 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307808 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007810 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7811 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307812 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007814 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7815 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307816 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007818 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7819 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307820 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007822 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7823 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307824 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007826 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7827 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307828 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7829 msm_routing_put_audio_mixer),
7830};
7831
7832static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007833 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7834 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307835 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007837 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7838 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307839 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007841 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7842 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307843 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007845 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7846 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307847 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007849 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7850 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307851 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007853 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7854 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307855 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007857 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7858 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307859 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007861 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7862 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307863 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007865 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7866 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307867 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007869 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7870 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307871 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007873 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7874 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307875 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007877 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7878 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307879 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007881 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7882 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307883 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007885 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7886 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307887 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007889 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7890 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307891 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007893 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7894 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307895 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7896 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007897 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7898 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7899 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7900 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307901};
7902
7903static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007904 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7905 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307906 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007908 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7909 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307910 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007912 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7913 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307914 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007916 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7917 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307918 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007920 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7921 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307922 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007924 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7925 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307926 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007928 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7929 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307930 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007932 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7933 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307934 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007936 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7937 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307938 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007940 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7941 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307942 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007944 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7945 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307946 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007948 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7949 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307950 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007952 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7953 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307954 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007956 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7957 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307958 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007960 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7961 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307962 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007964 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7965 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307966 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7967 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007968 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7969 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7970 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7971 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307972};
7973
7974static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007975 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7976 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307977 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007979 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7980 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307981 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007983 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7984 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307985 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007987 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7988 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307989 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007991 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7992 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307993 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007995 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7996 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307997 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007999 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8000 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308001 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008003 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8004 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308005 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008007 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8008 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308009 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008011 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8012 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308013 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008015 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8016 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308017 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008019 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8020 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308021 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008023 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8024 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308025 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008027 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8028 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308029 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008031 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8032 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308033 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008035 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8036 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308037 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8038 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008039 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8040 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8041 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8042 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308043};
8044
8045static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008046 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8047 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308048 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008050 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8051 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308052 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008054 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8055 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308056 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008058 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8059 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308060 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008062 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8063 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308064 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008066 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8067 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308068 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008070 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8071 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308072 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008074 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8075 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308076 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008078 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8079 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308080 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008082 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8083 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308084 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008086 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8087 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308088 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008090 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8091 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308092 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008094 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8095 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308096 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008098 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8099 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308100 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008102 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8103 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308104 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008106 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8107 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308108 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8109 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008110 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8111 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8112 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8113 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308114};
8115
8116static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008117 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8118 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308119 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008121 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8122 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308123 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008125 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8126 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308127 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008129 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8130 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308131 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008133 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8134 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308135 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008137 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8138 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308139 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008141 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8142 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308143 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008145 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8146 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308147 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008149 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8150 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308151 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008153 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8154 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308155 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008157 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8158 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308159 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008161 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8162 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308163 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008165 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8166 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308167 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008169 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8170 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308171 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008173 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8174 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308175 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008177 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8178 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308179 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8180 msm_routing_put_audio_mixer),
8181};
8182
8183static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008184 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8185 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308186 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008188 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8189 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308190 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008192 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8193 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308194 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008196 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8197 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308198 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008200 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8201 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308202 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008204 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8205 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308206 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008208 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8209 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308210 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008212 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8213 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308214 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008216 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8217 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308218 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008220 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8221 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308222 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008224 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8225 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308226 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008228 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8229 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308230 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008232 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8233 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308234 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008236 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8237 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308238 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008240 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8241 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308242 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008244 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8245 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308246 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8247 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008248 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8249 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8250 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8251 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308252};
8253
8254static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008255 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8256 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308257 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008259 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8260 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308261 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008263 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8264 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308265 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008267 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8268 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308269 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008271 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8272 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308273 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008275 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8276 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308277 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008279 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8280 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308281 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008283 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8284 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308285 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008287 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8288 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308289 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008291 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8292 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308293 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008295 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8296 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308297 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008299 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8300 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308301 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008303 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8304 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308305 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008307 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8308 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308309 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008311 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8312 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308313 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008315 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8316 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308317 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8318 msm_routing_put_audio_mixer),
8319};
8320
8321static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008322 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8323 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308324 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008326 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8327 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308328 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008330 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8331 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308332 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008334 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8335 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308336 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008338 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8339 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308340 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008342 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8343 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308344 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008346 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8347 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308348 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008350 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8351 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308352 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008354 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8355 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308356 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008358 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8359 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308360 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008362 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8363 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308364 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008366 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8367 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308368 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008370 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8371 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308372 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008374 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8375 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308376 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008378 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8379 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308380 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008382 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8383 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308384 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8385 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008386 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8387 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8388 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8389 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308390};
8391
8392static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008393 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8394 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308395 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008397 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8398 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308399 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008401 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8402 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308403 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008405 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8406 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308407 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008409 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8410 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308411 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008413 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8414 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308415 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008417 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8418 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308419 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008421 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8422 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308423 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008425 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8426 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308427 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008429 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8430 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308431 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008433 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8434 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308435 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008437 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8438 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308439 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008441 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8442 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308443 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008445 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8446 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308447 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008449 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8450 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308451 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008453 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8454 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308455 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8456 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008457 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8458 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8459 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8460 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308461};
8462
8463static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008464 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8465 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308466 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008468 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8469 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308470 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008472 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8473 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308474 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008476 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8477 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308478 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008480 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8481 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308482 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008484 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8485 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308486 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008488 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8489 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308490 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008492 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8493 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308494 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008496 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8497 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308498 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008500 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8501 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308502 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008504 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8505 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308506 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008508 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8509 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308510 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008512 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8513 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308514 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008516 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8517 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308518 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008520 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8521 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308522 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008524 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8525 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308526 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8527 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008528 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8529 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8530 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8531 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308532};
8533
8534static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008535 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8536 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308537 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008539 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8540 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308541 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008543 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8544 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308545 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008547 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8548 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308549 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008551 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8552 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308553 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008555 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8556 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308557 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008559 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8560 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308561 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008563 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8564 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308565 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008567 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8568 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308569 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008571 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8572 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308573 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008575 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8576 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308577 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008579 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8580 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308581 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008583 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8584 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308585 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008587 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8588 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308589 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008591 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8592 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308593 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008595 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8596 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308597 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8598 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008599 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8600 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8601 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8602 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308603};
8604
8605static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008606 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8607 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308608 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008610 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8611 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308612 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008614 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8615 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308616 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008618 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8619 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308620 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008622 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8623 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308624 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008626 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8627 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308628 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008630 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8631 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308632 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008634 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8635 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308636 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008638 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8639 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308640 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008642 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8643 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308644 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008646 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8647 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308648 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008650 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8651 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308652 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008654 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8655 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308656 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008658 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8659 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308660 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008662 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8663 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308664 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008666 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8667 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308668 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008670 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8671 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308672 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8673 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008674 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8675 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8676 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8677 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308678};
8679
8680static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008681 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8682 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308683 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008685 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8686 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308687 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008689 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8690 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308691 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008693 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8694 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308695 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008697 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8698 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308699 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008701 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8702 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308703 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008705 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8706 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308707 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008709 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8710 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308711 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008713 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8714 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308715 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008717 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8718 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308719 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008721 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8722 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308723 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008725 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8726 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308727 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008729 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8730 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308731 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008733 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8734 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308735 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008737 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8738 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308739 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008741 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8742 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308743 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8744 msm_routing_put_audio_mixer),
8745};
8746
8747static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008748 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8749 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308750 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008752 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8753 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308754 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008756 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8757 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308758 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008760 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8761 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308762 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008764 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8765 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308766 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008768 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8769 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308770 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008772 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8773 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308774 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008776 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8777 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308778 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008780 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8781 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308782 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008784 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8785 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308786 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008788 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8789 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308790 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008792 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8793 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308794 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008796 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8797 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308798 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008800 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8801 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308802 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008804 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8805 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308806 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008808 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8809 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308810 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008812 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8813 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308814 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8815 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008816 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8817 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8818 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8819 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308820};
8821
8822static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008823 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8824 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308825 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008827 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8828 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308829 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008831 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8832 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308833 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008835 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8836 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308837 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008839 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8840 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308841 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008843 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8844 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308845 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008847 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8848 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308849 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008851 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8852 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308853 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008855 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8856 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308857 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008859 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8860 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308861 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008863 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8864 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308865 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008867 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8868 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308869 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008871 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8872 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308873 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008875 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8876 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308877 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008879 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8880 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308881 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008883 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8884 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308885 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008887 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8888 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308889 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8890 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008891 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8892 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8893 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8894 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308895};
8896
8897static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008898 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8899 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308900 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008902 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8903 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308904 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008906 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8907 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308908 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008910 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8911 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308912 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008914 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8915 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308916 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008918 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8919 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308920 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008922 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8923 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308924 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008926 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8927 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308928 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008930 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8931 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308932 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008934 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8935 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308936 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008938 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8939 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308940 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008942 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8943 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308944 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008946 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8947 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308948 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008950 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8951 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308952 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008954 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8955 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308956 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008958 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8959 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308960 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008962 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8963 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308964 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8965 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008966 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8967 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8968 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8969 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308970};
8971
Rohit Kumara5077932017-09-10 22:05:05 +05308972static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008973 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8974 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308975 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008977 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8978 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308979 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008981 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8982 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308983 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008985 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8986 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308987 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008989 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8990 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308991 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008993 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8994 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308995 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008997 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8998 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308999 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009001 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9002 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309003 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009005 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9006 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309007 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009009 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9010 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309011 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009013 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9014 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309015 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009017 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9018 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309019 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009021 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9022 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309023 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009025 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9026 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309027 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009029 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9030 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309031 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009033 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9034 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309035 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009037 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9038 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309039 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9040 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009041 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9042 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9043 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9044 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309045};
9046
9047static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009048 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9049 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309050 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009052 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9053 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309054 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009056 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9057 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309058 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009060 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9061 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309062 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009064 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9065 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309066 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009068 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9069 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309070 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009072 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9073 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309074 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009076 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9077 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309078 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009080 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9081 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309082 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009084 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9085 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309086 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009088 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9089 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309090 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009092 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9093 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309094 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009096 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9097 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309098 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009100 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9101 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309102 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009104 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9105 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309106 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009108 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9109 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309110 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9111 msm_routing_put_audio_mixer),
9112};
9113
9114static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009115 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9116 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309117 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009119 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9120 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309121 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009123 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9124 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309125 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009127 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9128 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309129 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009131 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9132 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309133 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009135 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9136 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309137 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009139 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9140 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309141 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009143 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9144 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309145 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009147 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9148 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309149 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009151 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9152 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309153 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009155 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9156 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309157 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009159 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9160 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309161 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009163 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9164 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309165 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009167 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9168 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309169 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009171 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9172 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309173 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009175 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9176 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309177 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009179 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9180 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309181 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9182 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009183 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9184 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9185 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9186 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309187};
9188
9189static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009190 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9191 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309192 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009194 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9195 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309196 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009198 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9199 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309200 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009202 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9203 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309204 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009206 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9207 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309208 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009210 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9211 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309212 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009214 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9215 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309216 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009218 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9219 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309220 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009222 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9223 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309224 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009226 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9227 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309228 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009230 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9231 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309232 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009234 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9235 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309236 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009238 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9239 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309240 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009242 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9243 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309244 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009246 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9247 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309248 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009250 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9251 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309252 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009254 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9255 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309256 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9257 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009258 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9259 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9260 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9261 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309262};
9263
9264static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009265 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9266 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309267 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009269 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9270 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309271 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009273 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9274 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309275 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009277 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9278 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309279 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009281 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9282 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309283 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009285 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9286 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309287 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009289 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9290 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309291 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009293 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9294 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309295 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009297 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9298 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309299 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009301 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9302 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309303 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009305 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9306 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309307 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009309 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9310 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309311 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009313 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9314 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309315 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009317 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9318 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309319 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009321 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9322 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309323 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009325 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9326 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309327 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009329 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9330 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309331 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9332 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009333 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9334 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9335 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9336 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309337};
9338
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309339static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009340 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9341 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309342 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009344 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9345 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309346 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009348 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9349 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309350 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009352 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9353 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309354 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009356 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9357 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309358 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009360 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9361 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309362 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009364 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9365 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309366 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009368 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9369 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309370 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009372 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9373 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309374 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009376 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9377 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309378 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009380 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9381 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309382 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009384 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9385 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309386 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009388 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9389 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309390 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009392 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9393 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309394 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009396 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9397 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309398 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009400 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9401 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309402 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009404 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9405 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309406 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009408 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9409 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309410 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009412 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9413 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309414 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009416 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9417 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309418 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009420 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9421 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309422 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009424 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9425 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309426 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009428 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9429 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309430 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009432 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9433 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309434 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009436 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9437 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309438 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009440 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9441 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309442 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009444 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9445 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309446 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009448 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9449 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309450 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009452 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9453 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309454 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009456 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309458 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009460 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309462 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009464 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9465 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309466 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009468 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309470 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009472 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9473 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309474 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009476 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9477 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309478 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009480 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9481 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309482 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009484 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9485 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309486 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009488 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9489 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309490 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009492 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9493 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309494 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009496 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9497 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309498 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009500 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9501 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309502 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009504 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9505 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309506 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009508 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9509 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309510 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009512 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9513 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309514 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009516 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9517 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309518 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9519 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309520 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9521 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9522 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9523 msm_routing_put_audio_mixer),
9524 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9525 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9526 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9527 msm_routing_put_audio_mixer),
9528 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9529 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9530 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9531 msm_routing_put_audio_mixer),
9532 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9533 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9534 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9535 msm_routing_put_audio_mixer),
9536 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9537 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9538 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9539 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009540 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9541 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9542 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9543 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309544 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9545 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9546 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9547 msm_routing_put_audio_mixer),
9548 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9549 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9550 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9551 msm_routing_put_audio_mixer),
9552 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9553 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9554 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9555 msm_routing_put_audio_mixer),
9556 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9557 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9558 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9559 msm_routing_put_audio_mixer),
9560 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9561 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9562 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9563 msm_routing_put_audio_mixer),
9564 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9565 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9566 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9567 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009568 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9569 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9570 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9571 msm_routing_put_audio_mixer),
9572 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9573 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9574 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9575 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309576 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9577 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9578 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9579 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309580 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9581 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9582 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9583 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309584};
9585
9586static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009587 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9588 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309589 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009591 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9592 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309593 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009595 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9596 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309597 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009599 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9600 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309601 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009603 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9604 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309605 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009607 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9608 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309609 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009611 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9612 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309613 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009615 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9616 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309617 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009619 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9620 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309621 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009623 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9624 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309625 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009627 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9628 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309629 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009631 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9632 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309633 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009635 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9636 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309637 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009639 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9640 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309641 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009643 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9644 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309645 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009647 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9648 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309649 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009651 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9652 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309653 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009655 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9656 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309657 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009659 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9660 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309661 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009663 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9664 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309665 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009667 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9668 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309669 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009671 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9672 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309673 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009675 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9676 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309677 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009679 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9680 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309681 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009683 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9684 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309685 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009687 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9688 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309689 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009691 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9692 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309693 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009695 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9696 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309697 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009699 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9700 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309701 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009703 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9704 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309705 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009707 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9708 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309709 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009711 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9712 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309713 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009715 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9716 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309717 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009719 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9720 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309721 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9722 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309723 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9724 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9725 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9726 msm_routing_put_audio_mixer),
9727 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9728 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9729 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9730 msm_routing_put_audio_mixer),
9731 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9732 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9733 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9734 msm_routing_put_audio_mixer),
9735 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9736 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9737 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9738 msm_routing_put_audio_mixer),
9739 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9740 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9741 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9742 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009743 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9744 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9745 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9746 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309747 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9748 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9749 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9750 msm_routing_put_audio_mixer),
9751 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9752 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9753 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9754 msm_routing_put_audio_mixer),
9755 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9756 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9757 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9758 msm_routing_put_audio_mixer),
9759 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9760 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9761 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9762 msm_routing_put_audio_mixer),
9763 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9764 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9765 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9766 msm_routing_put_audio_mixer),
9767 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9768 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9769 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9770 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009771 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9772 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9773 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9774 msm_routing_put_audio_mixer),
9775 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9776 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9777 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9778 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309779 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9780 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9781 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9782 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309783 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9784 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9785 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9786 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309787};
9788
9789static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009790 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9791 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309792 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009794 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9795 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309796 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009798 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9799 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309800 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009802 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9803 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309804 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009806 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9807 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309808 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009810 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9811 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309812 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009814 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9815 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309816 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009818 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9819 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309820 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009822 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9823 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309824 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009826 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9827 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309828 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009830 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9831 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309832 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009834 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9835 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309836 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009838 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9839 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309840 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009842 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9843 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309844 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009846 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9847 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309848 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009850 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9851 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309852 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009854 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9855 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309856 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009858 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9859 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309860 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009862 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9863 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309864 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009866 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9867 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309868 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009870 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9871 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309872 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009874 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9875 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309876 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009878 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9879 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309880 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009882 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9883 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309884 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009886 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9887 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309888 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009890 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9891 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309892 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009894 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9895 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309896 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009898 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9899 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309900 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009902 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9903 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309904 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009906 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9907 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309908 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009910 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9911 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309912 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009914 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9915 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309916 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009918 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9919 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309920 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009922 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9923 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309924 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9925 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309926 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9927 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9928 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9929 msm_routing_put_audio_mixer),
9930 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9931 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9932 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9933 msm_routing_put_audio_mixer),
9934 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9935 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9936 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9937 msm_routing_put_audio_mixer),
9938 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9939 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9940 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9941 msm_routing_put_audio_mixer),
9942 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9943 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9944 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9945 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009946 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9947 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9948 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9949 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309950 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9951 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9952 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9953 msm_routing_put_audio_mixer),
9954 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9955 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9956 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9957 msm_routing_put_audio_mixer),
9958 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9959 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9960 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9961 msm_routing_put_audio_mixer),
9962 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9963 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9964 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9965 msm_routing_put_audio_mixer),
9966 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9967 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9968 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9969 msm_routing_put_audio_mixer),
9970 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9971 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9972 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9973 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009974 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9975 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9976 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9977 msm_routing_put_audio_mixer),
9978 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9979 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9980 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9981 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309982 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9983 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9984 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9985 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309986};
9987
9988static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009989 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9990 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309991 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009993 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9994 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309995 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009997 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9998 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309999 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010001 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10002 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010003 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010005 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10006 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010007 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010009 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10010 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010011 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010013 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10014 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010015 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010017 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10018 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010019 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010021 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10022 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010023 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010025 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10026 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010027 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010029 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10030 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010031 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010033 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10034 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010035 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010037 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10038 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010039 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010041 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10042 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010043 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010045 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10046 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010047 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010049 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10050 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010051 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010053 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10054 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010055 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010057 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10058 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010059 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010061 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10062 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010063 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010065 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10066 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010067 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010069 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10070 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010071 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010073 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10074 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010075 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010077 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10078 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010079 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010081 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10082 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010083 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010085 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10086 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010087 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010089 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10090 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010091 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010093 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10094 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010095 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010097 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10098 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010099 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010101 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10102 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010103 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010105 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10106 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010107 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010109 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10110 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010111 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010113 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10114 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010115 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010117 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10118 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010119 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10120 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010121 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10122 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10123 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10124 msm_routing_put_audio_mixer),
10125 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10126 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10127 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10128 msm_routing_put_audio_mixer),
10129 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10130 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10131 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10132 msm_routing_put_audio_mixer),
10133 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10134 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10135 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10136 msm_routing_put_audio_mixer),
10137 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10138 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10139 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10140 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010141 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10142 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10143 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10144 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010145 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10146 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10147 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10148 msm_routing_put_audio_mixer),
10149 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10150 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10151 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10152 msm_routing_put_audio_mixer),
10153 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10154 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10155 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10156 msm_routing_put_audio_mixer),
10157 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10158 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10159 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10160 msm_routing_put_audio_mixer),
10161 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10162 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10163 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10164 msm_routing_put_audio_mixer),
10165 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10166 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10167 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10168 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010169 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10170 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10171 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10172 msm_routing_put_audio_mixer),
10173 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10174 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10175 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10176 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010177 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10178 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10179 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10180 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010181};
10182
10183static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010184 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10185 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010186 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010188 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10189 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010190 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010192 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10193 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010194 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010196 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10197 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010198 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010200 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10201 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010202 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010204 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10205 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010206 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010208 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10209 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010210 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010212 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10213 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010214 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010216 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10217 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010218 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010220 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10221 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010222 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010224 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10225 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010226 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010228 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10229 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010230 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010232 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10233 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010234 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010236 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10237 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010238 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010240 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10241 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010242 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010244 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10245 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010246 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010248 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10249 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010250 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010252 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10253 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010254 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010256 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10257 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010258 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010260 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10261 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010262 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010264 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10265 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010266 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010268 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10269 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010270 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010272 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10273 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010274 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010276 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10277 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010278 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010280 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10281 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010282 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010284 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10285 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010286 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010288 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10289 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010290 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010292 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10293 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010294 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010296 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10297 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010298 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010300 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10301 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010302 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010304 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10305 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010306 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010308 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10309 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010310 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010312 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10313 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010314 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010316 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10317 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010318 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010320 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10321 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010322 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010324 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10325 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010326 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010328 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10329 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010330 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010332 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10333 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010334 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010336 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10337 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010338 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10339 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010340 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10341 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10342 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10343 msm_routing_put_audio_mixer),
10344 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10345 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10346 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10347 msm_routing_put_audio_mixer),
10348 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10349 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10350 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10351 msm_routing_put_audio_mixer),
10352 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10353 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10354 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10355 msm_routing_put_audio_mixer),
10356 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10357 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10358 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10359 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010360 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10361 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10362 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10363 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010364 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10365 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10366 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10367 msm_routing_put_audio_mixer),
10368 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10369 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10370 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10371 msm_routing_put_audio_mixer),
10372 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10373 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10374 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10375 msm_routing_put_audio_mixer),
10376 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10377 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10378 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10379 msm_routing_put_audio_mixer),
10380 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10381 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10382 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10383 msm_routing_put_audio_mixer),
10384 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10385 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10386 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10387 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010388 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10389 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10390 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10391 msm_routing_put_audio_mixer),
10392 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10393 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10394 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10395 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010396 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10397 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10398 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10399 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010400 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10401 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10402 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10403 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010404};
10405
10406static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010407 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10408 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010409 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010411 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10412 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010413 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010415 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10416 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010417 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010419 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10420 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010421 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010423 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10424 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010425 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010427 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10428 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010429 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010431 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10432 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010433 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010435 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10436 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010437 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010439 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10440 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010441 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010443 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10444 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010445 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010447 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10448 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010449 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010451 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10452 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010453 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010455 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10456 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010457 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010459 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10460 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010461 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010463 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10464 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010465 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010467 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10468 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010469 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010471 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10472 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010473 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010475 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10476 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010477 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010479 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10480 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010481 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010483 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10484 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010485 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010487 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10488 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010489 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010491 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10492 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010493 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010495 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10496 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010497 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010499 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10500 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010501 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010503 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10504 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010505 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010507 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10508 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010509 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010511 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10512 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010513 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010515 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10516 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010517 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010519 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10520 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010521 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010523 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10524 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010525 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010527 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10528 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010529 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010531 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10532 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010533 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010535 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10536 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010537 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010539 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10540 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010541 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10542 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010543 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10544 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10545 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10546 msm_routing_put_audio_mixer),
10547 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10548 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10549 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10550 msm_routing_put_audio_mixer),
10551 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10552 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10553 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10554 msm_routing_put_audio_mixer),
10555 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10556 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10557 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10558 msm_routing_put_audio_mixer),
10559 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10560 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10561 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10562 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010563 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10564 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10565 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10566 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010567 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10568 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10569 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10570 msm_routing_put_audio_mixer),
10571 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10572 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10573 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10574 msm_routing_put_audio_mixer),
10575 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10576 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10577 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10578 msm_routing_put_audio_mixer),
10579 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10580 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10581 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10582 msm_routing_put_audio_mixer),
10583 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10584 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10585 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10586 msm_routing_put_audio_mixer),
10587 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10588 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10589 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10590 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010591 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10592 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10593 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10594 msm_routing_put_audio_mixer),
10595 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10596 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10597 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10598 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010599 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10600 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10601 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10602 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010603};
10604
10605static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010606 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10607 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010608 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010610 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10611 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010612 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010614 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10615 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010616 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010618 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10619 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010620 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010622 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10623 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010624 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010626 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10627 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010628 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010630 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10631 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010632 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010634 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10635 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010636 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010638 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10639 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010640 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010642 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10643 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010644 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010646 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10647 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010648 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010650 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10651 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010652 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010654 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10655 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010656 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010658 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10659 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010660 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010662 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10663 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010664 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010666 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10667 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010668 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010670 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10671 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010672 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010674 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10675 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010676 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010678 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10679 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010680 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010682 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10683 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010684 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010686 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10687 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010688 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010690 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10691 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010692 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010694 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10695 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010696 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010698 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10699 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010700 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010702 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10703 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010704 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010706 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10707 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010708 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010710 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10711 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010712 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010714 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10715 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010716 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010718 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10719 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010720 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010722 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10723 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010724 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010726 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10727 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010728 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010730 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10731 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010732 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010734 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10735 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010736 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010738 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10739 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010740 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010742 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10743 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010744 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10745 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010746 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10747 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10748 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10749 msm_routing_put_audio_mixer),
10750 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10751 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10752 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10753 msm_routing_put_audio_mixer),
10754 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10755 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10756 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10757 msm_routing_put_audio_mixer),
10758 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10759 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10760 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10761 msm_routing_put_audio_mixer),
10762 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10763 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10764 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10765 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010766 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10767 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10768 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10769 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010770 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10771 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10772 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10773 msm_routing_put_audio_mixer),
10774 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10775 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10776 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10777 msm_routing_put_audio_mixer),
10778 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10779 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10780 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10781 msm_routing_put_audio_mixer),
10782 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10783 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10784 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10785 msm_routing_put_audio_mixer),
10786 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10787 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10788 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10789 msm_routing_put_audio_mixer),
10790 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10791 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10792 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10793 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010794 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10795 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10796 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10797 msm_routing_put_audio_mixer),
10798 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10799 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10800 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10801 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010802 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10803 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10804 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10805 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010806 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10807 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10808 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10809 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010810};
10811
Asish Bhattacharya34504582017-08-08 12:55:01 +053010812static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010813 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10814 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010815 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010817 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10818 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010819 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010821 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10822 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010823 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010825 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10826 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010827 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010829 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10830 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010831 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010833 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10834 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010835 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010837 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10838 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010839 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010841 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10842 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010843 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010845 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10846 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010847 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010849 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10850 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010851 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010853 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10854 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010855 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010857 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10858 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010859 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010861 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10862 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010863 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010865 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10866 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010867 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010869 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10870 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010871 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010873 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10874 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010875 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010877 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10878 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010879 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010881 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10882 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010883 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010885 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10886 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010887 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010889 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10890 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010891 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010893 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10894 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010895 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010897 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10898 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010899 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010901 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10902 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010903 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010905 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10906 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010907 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010909 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10910 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010911 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010913 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10914 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010915 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010917 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10918 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010919 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010921 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10922 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010923 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010925 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10926 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010927 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010929 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10930 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010931 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010933 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10934 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010935 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010937 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10938 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010939 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010941 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10942 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010943 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010945 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10946 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010947 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010949 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10950 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010951 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10952 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010953 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10954 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10955 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10956 msm_routing_put_audio_mixer),
10957 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10958 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10959 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10960 msm_routing_put_audio_mixer),
10961 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10962 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10963 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10964 msm_routing_put_audio_mixer),
10965 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10966 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10967 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10968 msm_routing_put_audio_mixer),
10969 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10970 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10971 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10972 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010973 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10974 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10975 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10976 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010977 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10978 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10979 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10980 msm_routing_get_audio_mixer,
10981 msm_routing_put_audio_mixer),
10982 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10983 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10984 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10985 msm_routing_get_audio_mixer,
10986 msm_routing_put_audio_mixer),
10987 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10988 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10989 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10990 msm_routing_get_audio_mixer,
10991 msm_routing_put_audio_mixer),
10992 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10993 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10994 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10995 msm_routing_get_audio_mixer,
10996 msm_routing_put_audio_mixer),
10997 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10998 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10999 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11000 msm_routing_get_audio_mixer,
11001 msm_routing_put_audio_mixer),
11002 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11003 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11004 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11005 msm_routing_get_audio_mixer,
11006 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011007 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11008 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11009 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11010 msm_routing_put_audio_mixer),
11011 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11012 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11013 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11014 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011015 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11016 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11017 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11018 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011019 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11020 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11021 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11022 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053011023};
11024
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011025static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011026 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11027 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011028 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011030 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11031 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011032 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011034 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11035 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011036 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011038 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11039 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011040 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011042 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11043 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011044 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011046 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11047 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011048 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011050 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11051 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011052 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011054 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11055 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011056 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011058 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11059 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011060 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011062 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11063 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011064 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011066 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11067 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011068 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011070 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11071 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011072 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011074 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11075 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011076 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011078 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11079 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011080 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011082 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11083 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011084 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011086 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11087 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011088 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011090 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11091 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011092 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011094 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11095 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011096 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011098 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11099 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011100 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011102 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11103 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011104 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11105 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011106 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11107 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11108 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11109 msm_routing_put_audio_mixer),
11110 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11111 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11112 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11113 msm_routing_put_audio_mixer),
11114 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11115 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11116 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11117 msm_routing_put_audio_mixer),
11118 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11119 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11120 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11121 msm_routing_put_audio_mixer),
11122 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11123 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11124 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11125 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011126 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11127 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11128 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11129 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011130 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11131 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11132 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11133 msm_routing_put_audio_mixer),
11134 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11135 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11136 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11137 msm_routing_put_audio_mixer),
11138 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11139 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11140 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11141 msm_routing_put_audio_mixer),
11142 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11143 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11144 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11145 msm_routing_put_audio_mixer),
11146 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11147 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11148 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11149 msm_routing_put_audio_mixer),
11150 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11151 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11152 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11153 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011154 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11155 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11156 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11157 msm_routing_put_audio_mixer),
11158 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11159 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11160 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11161 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011162 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11163 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11164 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11165 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011166};
11167
Laxminath Kasam38070be2017-08-17 18:21:59 +053011168static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011169 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11170 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011171 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011173 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11174 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011175 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011177 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11178 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011179 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011181 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11182 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011183 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011185 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11186 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011187 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011189 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11190 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011191 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011193 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11194 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011195 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011197 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11198 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011199 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011201 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11202 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011203 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011205 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11206 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011207 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011209 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11210 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011211 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011213 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11214 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011215 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011217 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11218 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011219 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011221 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11222 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011223 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011225 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11226 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011227 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011229 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11230 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011231 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011233 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11234 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011235 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011237 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11238 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011239 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011241 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11242 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011243 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011245 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11246 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011247 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011249 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11250 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011251 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011253 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11254 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011255 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011257 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11258 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011259 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011261 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11262 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011263 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011265 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11266 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011267 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011269 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11270 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011271 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11272 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011273 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11274 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11275 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11276 msm_routing_put_audio_mixer),
11277 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11278 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11279 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11280 msm_routing_put_audio_mixer),
11281 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11282 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11283 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11284 msm_routing_put_audio_mixer),
11285 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11286 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11287 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11288 msm_routing_put_audio_mixer),
11289 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11290 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11291 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11292 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011293 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11294 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11295 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11296 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011297 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11298 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11299 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11300 msm_routing_get_audio_mixer,
11301 msm_routing_put_audio_mixer),
11302 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11303 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11304 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11305 msm_routing_get_audio_mixer,
11306 msm_routing_put_audio_mixer),
11307 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11308 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11309 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11310 msm_routing_get_audio_mixer,
11311 msm_routing_put_audio_mixer),
11312 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11313 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11314 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11315 msm_routing_get_audio_mixer,
11316 msm_routing_put_audio_mixer),
11317 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11318 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11319 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11320 msm_routing_get_audio_mixer,
11321 msm_routing_put_audio_mixer),
11322 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11323 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11324 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11325 msm_routing_get_audio_mixer,
11326 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011327 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11329 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11330 msm_routing_put_audio_mixer),
11331 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11332 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11333 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11334 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011335 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11336 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11337 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11338 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011339 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11341 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11342 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011343};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011344static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011345 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11346 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011347 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011349 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11350 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011351 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011353 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11354 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011355 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011357 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11358 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011359 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011361 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11362 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011363 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011365 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11366 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011367 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011369 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11370 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011371 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011373 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11374 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011375 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11376 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011377 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11378 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11379 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11380 msm_routing_put_audio_mixer),
11381 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11382 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11383 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11384 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011385 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11386 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11387 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11388 msm_routing_put_audio_mixer),
11389 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11390 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11391 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11392 msm_routing_put_audio_mixer),
11393 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11394 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11395 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11396 msm_routing_put_audio_mixer),
11397 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11398 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11399 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11400 msm_routing_put_audio_mixer),
11401 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11402 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11403 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11404 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011405 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11406 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11407 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11408 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011409 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11410 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11411 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11412 msm_routing_get_audio_mixer,
11413 msm_routing_put_audio_mixer),
11414 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11415 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11416 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11417 msm_routing_get_audio_mixer,
11418 msm_routing_put_audio_mixer),
11419 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11420 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11421 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11422 msm_routing_get_audio_mixer,
11423 msm_routing_put_audio_mixer),
11424 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11425 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11426 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11427 msm_routing_get_audio_mixer,
11428 msm_routing_put_audio_mixer),
11429 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11430 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11431 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11432 msm_routing_get_audio_mixer,
11433 msm_routing_put_audio_mixer),
11434 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11435 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11436 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11437 msm_routing_get_audio_mixer,
11438 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011439 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11440 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11441 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11442 msm_routing_put_audio_mixer),
11443 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11444 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11445 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11446 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011447 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11448 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11449 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11450 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011451};
11452
11453static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011454 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11455 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011456 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011458 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11459 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011460 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011462 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11463 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011464 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11465 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011466 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11467 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11468 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11469 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011470 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11471 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11472 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011474 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11475 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011476 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011478 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11479 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011480 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011482 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11483 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011484 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011486 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11487 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011488 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011490 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11491 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011492 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011494 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11495 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011496 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11497 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011498 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11499 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11500 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11501 msm_routing_put_audio_mixer),
11502 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11504 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11505 msm_routing_put_audio_mixer),
11506 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11507 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11508 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11509 msm_routing_put_audio_mixer),
11510 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11511 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11512 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
11514 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11516 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011518 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11520 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011522 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11523 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11524 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11525 msm_routing_get_audio_mixer,
11526 msm_routing_put_audio_mixer),
11527 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11528 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11529 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11530 msm_routing_get_audio_mixer,
11531 msm_routing_put_audio_mixer),
11532 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11533 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11534 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11535 msm_routing_get_audio_mixer,
11536 msm_routing_put_audio_mixer),
11537 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11538 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11539 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11540 msm_routing_get_audio_mixer,
11541 msm_routing_put_audio_mixer),
11542 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11543 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11544 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11545 msm_routing_get_audio_mixer,
11546 msm_routing_put_audio_mixer),
11547 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11548 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11549 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11550 msm_routing_get_audio_mixer,
11551 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011552 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11553 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11554 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11555 msm_routing_put_audio_mixer),
11556 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11557 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11558 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11559 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011560 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11561 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11562 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11563 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011564};
11565
11566static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011567 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11568 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011569 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011571 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11572 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011573 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011575 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11576 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011577 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011579 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11580 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011581 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011583 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11584 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011585 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011587 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11588 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011589 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011591 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11592 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011593 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011595 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11596 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011597 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11598 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011599 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11600 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11601 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11602 msm_routing_put_audio_mixer),
11603 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11604 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11605 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11606 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011607 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11608 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11609 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11610 msm_routing_put_audio_mixer),
11611 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11612 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11613 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11614 msm_routing_put_audio_mixer),
11615 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11617 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11618 msm_routing_put_audio_mixer),
11619 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11620 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11621 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11622 msm_routing_put_audio_mixer),
11623 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11624 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11625 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11626 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011627 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11628 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11629 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11630 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011631 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11632 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11633 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11634 msm_routing_get_audio_mixer,
11635 msm_routing_put_audio_mixer),
11636 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11637 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11638 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11639 msm_routing_get_audio_mixer,
11640 msm_routing_put_audio_mixer),
11641 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11642 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11643 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11644 msm_routing_get_audio_mixer,
11645 msm_routing_put_audio_mixer),
11646 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11648 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11649 msm_routing_get_audio_mixer,
11650 msm_routing_put_audio_mixer),
11651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11653 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11654 msm_routing_get_audio_mixer,
11655 msm_routing_put_audio_mixer),
11656 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11657 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11658 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11659 msm_routing_get_audio_mixer,
11660 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011661 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11662 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11663 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11664 msm_routing_put_audio_mixer),
11665 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11666 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11667 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11668 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011669 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11670 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11671 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11672 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011673};
11674
11675static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011676 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11677 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011678 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011680 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11681 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011682 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011684 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11685 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011686 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011688 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11689 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011690 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011692 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11693 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011694 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011696 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11697 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011698 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011700 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11701 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011702 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011704 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11705 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011706 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011708 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11709 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011710 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011712 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11713 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011714 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011716 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11717 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011718 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011720 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11721 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011722 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011724 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11725 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011726 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011728 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11729 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011730 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011732 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11733 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011734 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011736 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11737 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011738 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011740 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11741 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011742 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011744 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11745 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011746 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011748 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11749 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011750 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011752 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11753 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011754 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011756 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11757 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011758 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011760 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11761 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011762 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011764 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11765 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011766 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011768 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11769 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011770 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011772 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11773 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011774 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11775 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011776 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11777 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11778 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11779 msm_routing_put_audio_mixer),
11780 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11781 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11782 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11783 msm_routing_put_audio_mixer),
11784 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11785 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11786 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11787 msm_routing_put_audio_mixer),
11788 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11789 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11790 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11791 msm_routing_put_audio_mixer),
11792 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11793 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11794 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11795 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011796 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11797 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11798 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11799 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011800 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11801 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11802 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11803 msm_routing_put_audio_mixer),
11804 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11805 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11806 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11807 msm_routing_put_audio_mixer),
11808 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11809 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11810 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11811 msm_routing_put_audio_mixer),
11812 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11813 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11814 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11815 msm_routing_put_audio_mixer),
11816 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11817 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11818 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11819 msm_routing_put_audio_mixer),
11820 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11821 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11822 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11823 msm_routing_put_audio_mixer),
11824 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11825 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11826 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11827 msm_routing_put_audio_mixer),
11828 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11829 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11830 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11831 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011832 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11833 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11834 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11835 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011836};
11837
11838static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11839 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11840 MSM_BACKEND_DAI_AUXPCM_TX,
11841 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11842 msm_routing_put_audio_mixer),
11843 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11844 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11845 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11846 msm_routing_put_audio_mixer),
11847 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11848 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11849 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11850 msm_routing_put_audio_mixer),
11851 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11852 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11853 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11854 msm_routing_put_audio_mixer),
11855 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11856 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11857 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11858 msm_routing_put_audio_mixer),
11859 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11860 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11861 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11862 msm_routing_put_audio_mixer),
11863 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11864 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11865 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11866 msm_routing_put_audio_mixer),
11867 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11868 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11869 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11870 msm_routing_put_audio_mixer),
11871 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11872 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11873 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11874 msm_routing_put_audio_mixer),
11875 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11876 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11877 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11878 msm_routing_put_audio_mixer),
11879 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11880 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11881 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11882 msm_routing_put_audio_mixer),
11883 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11884 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11885 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11886 msm_routing_put_audio_mixer),
11887 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11888 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11889 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11890 msm_routing_put_audio_mixer),
11891 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11892 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11893 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11894 msm_routing_put_audio_mixer),
11895 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11896 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11897 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11898 msm_routing_put_audio_mixer),
11899 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11900 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11901 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11902 msm_routing_put_audio_mixer),
11903 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11904 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11905 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11906 msm_routing_put_audio_mixer),
11907 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11908 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11909 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11910 msm_routing_put_audio_mixer),
11911 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11912 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11913 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11914 msm_routing_put_audio_mixer),
11915 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11916 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11917 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11918 msm_routing_put_audio_mixer),
11919 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11921 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11922 msm_routing_put_audio_mixer),
11923 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11924 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11925 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11926 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011927 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011928 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11929 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011930 msm_routing_put_audio_mixer),
11931 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011932 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11933 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011934 msm_routing_put_audio_mixer),
11935 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011936 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11937 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011938 msm_routing_put_audio_mixer),
11939 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011940 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11941 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011942 msm_routing_put_audio_mixer),
11943 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011944 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11945 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011946 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011947 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11948 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11949 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11950 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011951 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011952 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11953 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11954 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011955 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011956 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11957 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11958 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011959 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011960 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11961 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11962 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011963 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011964 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11965 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11966 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011967 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011968 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11969 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11970 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011971 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011972 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11973 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11974 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011975 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11976 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011977 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011978 msm_routing_put_audio_mixer),
11979 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11980 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011981 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011982 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011983 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11984 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11985 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11986 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011987};
11988
Surendar Karkac1cde372018-08-14 18:56:24 +053011989static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
11990 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11991 MSM_BACKEND_DAI_SLIMBUS_0_TX,
11992 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11993 msm_routing_put_audio_mixer),
11994 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11995 MSM_BACKEND_DAI_SLIMBUS_6_TX,
11996 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11997 msm_routing_put_audio_mixer),
11998 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11999 MSM_BACKEND_DAI_SLIMBUS_7_TX,
12000 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12001 msm_routing_put_audio_mixer),
12002 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12003 MSM_BACKEND_DAI_PRI_MI2S_TX,
12004 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12005 msm_routing_put_audio_mixer),
12006 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12007 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12008 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12009 msm_routing_put_audio_mixer),
12010 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12011 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12012 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12013 msm_routing_put_audio_mixer),
12014 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12015 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12016 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12017 msm_routing_put_audio_mixer),
12018 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12019 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
12020 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12021 msm_routing_put_audio_mixer),
12022 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12023 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12024 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12025 msm_routing_put_audio_mixer),
12026 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12027 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12028 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12029 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012030 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12031 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12032 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12033 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012034 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12035 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12036 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12037 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012038};
12039
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012040static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012041 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12042 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012043 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012045 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12046 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012047 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012049 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12050 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012051 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012053 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12054 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012055 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012057 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12058 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012059 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012061 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12062 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012063 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012065 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12066 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012067 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012069 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12070 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012071 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12072 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012073 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12074 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12075 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12076 msm_routing_put_audio_mixer),
12077 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12078 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12079 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12080 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012081 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12082 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12083 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12084 msm_routing_put_audio_mixer),
12085 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12086 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12087 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12088 msm_routing_put_audio_mixer),
12089 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12090 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12091 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12092 msm_routing_put_audio_mixer),
12093 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12094 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12095 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12096 msm_routing_put_audio_mixer),
12097 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12098 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12099 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12100 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012101 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12102 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12103 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12104 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012105 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12106 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12107 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12108 msm_routing_get_audio_mixer,
12109 msm_routing_put_audio_mixer),
12110 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12111 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12112 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12113 msm_routing_get_audio_mixer,
12114 msm_routing_put_audio_mixer),
12115 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12116 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12117 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12118 msm_routing_get_audio_mixer,
12119 msm_routing_put_audio_mixer),
12120 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12121 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12122 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12123 msm_routing_get_audio_mixer,
12124 msm_routing_put_audio_mixer),
12125 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12126 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12127 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12128 msm_routing_get_audio_mixer,
12129 msm_routing_put_audio_mixer),
12130 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12131 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12132 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12133 msm_routing_get_audio_mixer,
12134 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012135 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12136 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12137 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12138 msm_routing_put_audio_mixer),
12139 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12140 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12141 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12142 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012143 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12144 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12145 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12146 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012147};
12148
12149static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012150 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12151 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012152 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012154 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12155 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012156 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012158 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12159 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012160 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012162 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12163 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012164 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012166 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12167 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012168 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012170 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12171 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012172 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012174 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12175 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012176 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012178 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12179 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012180 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12181 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012182 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12183 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12184 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12185 msm_routing_put_audio_mixer),
12186 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12187 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12188 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12189 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012190 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12191 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12192 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12193 msm_routing_put_audio_mixer),
12194 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12195 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12196 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12197 msm_routing_put_audio_mixer),
12198 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12199 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12200 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12201 msm_routing_put_audio_mixer),
12202 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12203 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12204 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12205 msm_routing_put_audio_mixer),
12206 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12207 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12208 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12209 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012210 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12211 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12212 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12213 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012214 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12215 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12216 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12217 msm_routing_get_audio_mixer,
12218 msm_routing_put_audio_mixer),
12219 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12220 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12221 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12222 msm_routing_get_audio_mixer,
12223 msm_routing_put_audio_mixer),
12224 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12225 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12226 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12227 msm_routing_get_audio_mixer,
12228 msm_routing_put_audio_mixer),
12229 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12230 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12231 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12232 msm_routing_get_audio_mixer,
12233 msm_routing_put_audio_mixer),
12234 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12235 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12236 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12237 msm_routing_get_audio_mixer,
12238 msm_routing_put_audio_mixer),
12239 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12240 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12241 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12242 msm_routing_get_audio_mixer,
12243 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012244 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12245 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12246 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12247 msm_routing_put_audio_mixer),
12248 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12249 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12250 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12251 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012252 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12253 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12254 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12255 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012256};
12257
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012258static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012259 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12260 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012261 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12262 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012263 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12264 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012265 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12266 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012267 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12268 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012269 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12270 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012271 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12272 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012273 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12274 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012275 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012277 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12278 msm_routing_put_voice_mixer),
12279};
12280
12281static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012282 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12283 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012284 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12285 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012286 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12287 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012288 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12289 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012290 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12291 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012292 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12293 msm_routing_put_voice_mixer),
12294};
12295
12296static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012297 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12298 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012299 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12300 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012301 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12302 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012303 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12304 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012305 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12306 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012307 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12308 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012309 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12310 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012311 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12312 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012313 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12314 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012315 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12316 msm_routing_put_voice_mixer),
12317};
12318
12319static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012320 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12321 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012322 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12323 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012324 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12325 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012326 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12327 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012328 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12329 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012330 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12331 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012332 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12333 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012334 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12335 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012336 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12337 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012338 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12339 msm_routing_put_voice_mixer),
12340};
12341
12342static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012343 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12344MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012345 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12346 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012347 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12348MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012349 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12350 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012351 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12352MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012353 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12354 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012355 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12356MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012357 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12358 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012359 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12360MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012361 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12362 msm_routing_put_voice_mixer),
12363};
12364
12365static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012366 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12367 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012368 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12369 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012370 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12371 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012372 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12373 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012374 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12375 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012376 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12377 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012378 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012380 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12381 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012382 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12383 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012384 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12385 msm_routing_put_voice_mixer),
12386};
12387
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012388static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012389 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12390MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012391 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12392 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012393 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12394MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012395 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12396 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012397 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12398MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012399 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12400 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012401 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12402MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012403 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12404 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012405 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12406MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012407 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12408 msm_routing_put_voice_mixer),
12409};
12410
Karthikeyan Mani57550082018-05-03 18:43:58 -070012411static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12412 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12413 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12414 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12415 msm_routing_put_voice_mixer),
12416 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12417 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12418 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12419 msm_routing_put_voice_mixer),
12420 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12421 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12422 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12423 msm_routing_put_voice_mixer),
12424 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12425 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12426 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12427 msm_routing_put_voice_mixer),
12428 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12429 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12430 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12431 msm_routing_put_voice_mixer),
12432};
12433
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012434static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012435 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12436 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012437 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12438 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012439 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12440 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012441 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12442 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012443 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12444 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012445 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12446 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012447 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12448 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012449 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12450 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012451 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12452 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012453 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12454 msm_routing_put_voice_mixer),
12455};
12456
12457static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012458 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12459 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012460 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12461 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012462 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12463 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012464 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12465 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012466 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012468 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12469 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012470 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12471 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012472 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12473 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012474 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12475 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012476 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12477 msm_routing_put_voice_mixer),
12478};
12479
12480static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012481 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12482MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012483 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12484 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012485 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12486MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012487 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12488 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012489 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12490MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012491 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12492 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012493 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12494MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012495 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12496 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012497 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12498MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012499 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12500 msm_routing_put_voice_mixer),
12501};
12502
12503static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012504 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12505MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012506 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12507 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012508 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12509MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012510 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12511 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012512 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12513MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012514 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12515 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012516 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12517MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012518 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12519 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012520 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12521MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012522 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12523 msm_routing_put_voice_mixer),
12524};
12525
12526static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012527 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12528 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012529 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12530 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012531 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12532 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012533 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12534 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012535 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12536 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012537 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12538 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012539 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12540 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012541 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12542 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012543 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12544 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012545 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12546 msm_routing_put_voice_mixer),
12547};
12548
12549static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012550 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12551 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012552 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12553 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012554 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12555 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012556 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12557 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012558 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12559 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012560 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12561 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012562 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12563 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012564 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12565 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012566 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12567 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012568 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12569 msm_routing_put_voice_mixer),
12570};
12571
12572static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012573 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12574 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012575 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12576 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012577 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12578 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012579 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12580 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012581 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12582 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012583 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12584 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012585 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12586 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012587 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12588 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012589 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12590 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012591 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12592 msm_routing_put_voice_mixer),
12593};
12594
12595static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012596 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12597 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012598 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12599 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012600 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12601 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012602 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12603 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012604 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12605 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012606 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12607 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012608 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12609 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012610 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12611 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012612 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012614 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12615 msm_routing_put_voice_mixer),
12616};
12617
12618static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012619 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12620 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012621 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12622 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012623 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12624 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012625 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12626 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012627 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12628 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012629 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12630 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012631 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12632 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012633 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12634 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012635 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12636 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012637 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12638 msm_routing_put_voice_mixer),
12639};
12640
12641static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012642 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12643 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012644 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12645 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012646 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12647 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012648 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12649 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012650 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12651 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012652 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12653 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012654 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12655 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012656 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12657 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012658 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12659 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012660 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12661 msm_routing_put_voice_mixer),
12662};
12663
12664static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012665 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12666MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012667 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12668 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012669 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12670MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012671 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12672 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012673 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12674MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012675 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12676 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012677 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12678MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012679 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12680 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012681 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12682MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012683 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12684 msm_routing_put_voice_mixer),
12685};
12686
12687static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012688 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12689MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012690 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12691 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012692 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12693MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012694 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12695 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012696 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12697MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012698 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12699 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012700 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12701MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012702 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12703 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012704 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12705MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012706 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12707 msm_routing_put_voice_mixer),
12708};
12709
12710static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012711 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12712MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012713 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12714 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012715 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12716MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012717 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12718 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012719 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12720MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012721 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12722 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012723 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12724MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012725 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12726 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012727 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12728MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012729 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12730 msm_routing_put_voice_mixer),
12731};
12732
Rohit Kumara5077932017-09-10 22:05:05 +053012733static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012734 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12735MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012736 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12737 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012738 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12739MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012740 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12741 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012742 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12743MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012744 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12745 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012746 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12747MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012748 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12749 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012750 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12751MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012752 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12753 msm_routing_put_voice_mixer),
12754};
12755
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012756static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012757 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12758 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012759 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12760 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012761 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12762 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012763 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12764 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012765 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12766 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012767 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12768 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012769 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12770 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012771 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12772 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012773 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12774 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012775 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12776 msm_routing_put_voice_mixer),
12777};
12778
12779static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012780 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12781MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012782 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12783 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012784 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12785MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012786 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12787 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012788 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12789MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012790 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12791 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012792 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12793MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012794 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12795 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012796 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12797MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012798 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12799 msm_routing_put_voice_mixer),
12800};
12801
12802static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012803 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12804 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012805 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12806 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012807 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12808 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012809 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12810 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012811 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12812 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012813 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12814 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012815 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12816 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012817 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12818 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012819 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12820 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012821 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12822 msm_routing_put_voice_mixer),
12823};
12824
12825static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012826 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12827 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012828 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12829 msm_routing_put_voice_mixer),
12830};
12831
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012832static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12833 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12834 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12835 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12836 msm_routing_put_voice_mixer),
12837 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12838 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12839 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12840 msm_routing_put_voice_mixer),
12841 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12842 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12843 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12844 msm_routing_put_voice_mixer),
12845 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12846 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12847 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12848 msm_routing_put_voice_mixer),
12849 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12850 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12851 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12852 msm_routing_put_voice_mixer),
12853};
12854
12855static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12856 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12857 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12858 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12859 msm_routing_put_voice_mixer),
12860 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12861 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12862 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12863 msm_routing_put_voice_mixer),
12864 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12865 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12866 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12867 msm_routing_put_voice_mixer),
12868 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12869 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12870 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12871 msm_routing_put_voice_mixer),
12872 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12873 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12874 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12875 msm_routing_put_voice_mixer),
12876};
12877
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012878static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12879 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12880 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12881 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12882 msm_routing_put_voice_mixer),
12883 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12884 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12885 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12886 msm_routing_put_voice_mixer),
12887 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12888 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12889 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12890 msm_routing_put_voice_mixer),
12891 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12892 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12893 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12894 msm_routing_put_voice_mixer),
12895 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12896 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12897 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12898 msm_routing_put_voice_mixer),
12899};
12900
12901static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12902 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12903 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12904 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12905 msm_routing_put_voice_mixer),
12906 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12907 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12908 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12909 msm_routing_put_voice_mixer),
12910 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12911 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12912 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12913 msm_routing_put_voice_mixer),
12914 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12915 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12916 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12917 msm_routing_put_voice_mixer),
12918 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12919 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12920 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12921 msm_routing_put_voice_mixer),
12922};
12923
12924static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12925 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12926 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12927 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12928 msm_routing_put_voice_mixer),
12929 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12930 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12931 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12932 msm_routing_put_voice_mixer),
12933 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12934 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12935 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12936 msm_routing_put_voice_mixer),
12937 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12938 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12939 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12940 msm_routing_put_voice_mixer),
12941 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12942 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12943 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12944 msm_routing_put_voice_mixer),
12945};
12946
12947static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12948 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12949 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12950 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12951 msm_routing_put_voice_mixer),
12952 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12953 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12954 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12955 msm_routing_put_voice_mixer),
12956 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12957 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12958 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12959 msm_routing_put_voice_mixer),
12960 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12961 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12962 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12963 msm_routing_put_voice_mixer),
12964 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12965 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12966 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12967 msm_routing_put_voice_mixer),
12968};
12969
12970static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12971 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12972 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12973 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12974 msm_routing_put_voice_mixer),
12975 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12976 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12977 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12978 msm_routing_put_voice_mixer),
12979 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12980 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12981 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12982 msm_routing_put_voice_mixer),
12983 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12984 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12985 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12986 msm_routing_put_voice_mixer),
12987 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12988 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12989 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12990 msm_routing_put_voice_mixer),
12991};
12992
12993static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12994 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12995 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12996 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12997 msm_routing_put_voice_mixer),
12998 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12999 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13000 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13001 msm_routing_put_voice_mixer),
13002 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13003 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13004 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13005 msm_routing_put_voice_mixer),
13006 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13007 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13008 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13009 msm_routing_put_voice_mixer),
13010 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13011 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13012 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13013 msm_routing_put_voice_mixer),
13014};
13015
13016static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
13017 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13018 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13019 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13020 msm_routing_put_voice_mixer),
13021 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13022 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13023 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13024 msm_routing_put_voice_mixer),
13025 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13026 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13027 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13028 msm_routing_put_voice_mixer),
13029 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13030 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13031 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13032 msm_routing_put_voice_mixer),
13033 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13034 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13035 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13036 msm_routing_put_voice_mixer),
13037};
13038
13039static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
13040 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13041 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13042 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13043 msm_routing_put_voice_mixer),
13044 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13045 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13046 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13047 msm_routing_put_voice_mixer),
13048 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13049 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13050 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13051 msm_routing_put_voice_mixer),
13052 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13053 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13054 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13055 msm_routing_put_voice_mixer),
13056 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13057 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13058 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13059 msm_routing_put_voice_mixer),
13060};
13061
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013062static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013063 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13064 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013065 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13066 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013067 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13068 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013069 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13070 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013071};
13072
13073static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013074 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13075 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013076 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13077 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013078 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13079 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013080 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13081 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013082};
13083
13084static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013085 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13086 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013087 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13088 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013089 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13090 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013091 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13092 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013093};
13094
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013095static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013096 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
13097 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013098 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13099 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013100 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
13101 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013102 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13103 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013104 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013105 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13106 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013107 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013108 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13109 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013110 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013111 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13112 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013113 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013114 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13115 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013116 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013117 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13118 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013119 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013120 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13121 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013122 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013123 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13124 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013125 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013126 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13127 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013128 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013129 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13130 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013131 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013132 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13133 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013134 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013135 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13136 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013137 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013138 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13139 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013140 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013141 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13142 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013143 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
13144 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013145 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13146 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013147 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
13148MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013149 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013150 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13151 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13152 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13153 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13154 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13155 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013156 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13157 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13158 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013159 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13160 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13161 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13162 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13164 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13165 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13166 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13167 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13168 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
13169 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13170 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13171 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13172 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13173 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13174 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13175 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13176 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013177};
13178
13179static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013180 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13181 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013182 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13183 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013184 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13185 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013186 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13187 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013188 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013189 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13190 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013191 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013192 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13193 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013194 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013195 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13196 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013197 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013198 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13199 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013200 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013201 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13202 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013203 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013204 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13205 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013206 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013207 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13208 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013209 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013210 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13211 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013212 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013213 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13214 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013215 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013216 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13217 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013218 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013219 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13220 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013221 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013222 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13223 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013224 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013225 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13226 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013227 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013228 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13229 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013230 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13231 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13232 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13233 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13234 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13235 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013236 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13237 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13238 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013239 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13240 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13241 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13242 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13243 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13244 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13245 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13246 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13247 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13248 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13249 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13250 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13251 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13252 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13253 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13254 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13255 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13256 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013257};
13258
13259static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013260 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13261 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013262 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13263 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013264 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13265 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013266 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13267 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013268 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13269 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013270 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13271 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013272 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13273 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013274 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13275 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013276 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13277 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013278 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13279 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013280 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013282 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13283 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013284 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013286 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13287 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013288 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13289 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013290 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13291 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013292 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13293 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013294 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13295 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013296 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13297 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013298 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13299 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013300 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13301 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013302 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13303 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013304 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13305 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013306 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13307 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013308 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13309 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013310 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13311 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013312 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13313 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013314 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13315 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013316 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13317 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013318 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13319 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013320 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13321 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013322 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13323 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013324 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13325 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13326 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13327 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13328 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13329 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013330 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13331 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13332 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013333 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13334 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13335 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13336 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13337 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13338 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13339 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13340 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13341 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13342 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13343 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13344 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13345 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13346 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13347 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13348 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13349 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13350 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013351};
13352
13353static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013354 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13355 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013356 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13357 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013358 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13359 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013360 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13361 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013362 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13363 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013364 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13365 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013366 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13367 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013368 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13369 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013370 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13371 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013372 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13373 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013374 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13375 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013376 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13377 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013378 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13379 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013380 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13381 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013382 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13383 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013384 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13385 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013386 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13387 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013388 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13389 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013390 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13391 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013392 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13393 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013394 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13395 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013396 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13397 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013398 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013400 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13401 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013402 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13403 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013404 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13405 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013406 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13407 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013408 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13409 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013410 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13411 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013412 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13413 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013414 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13415 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013416 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13417 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013418 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13419 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013420 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13421 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013422 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13423 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013424 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13425 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013426 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13427 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013428 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13429 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013430 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13431 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13432 1, 0, msm_routing_get_voice_stub_mixer,
13433 msm_routing_put_voice_stub_mixer),
13434 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13435 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13436 1, 0, msm_routing_get_voice_stub_mixer,
13437 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013438 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13439 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13440 1, 0, msm_routing_get_voice_stub_mixer,
13441 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013442 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13443 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13444 1, 0, msm_routing_get_voice_stub_mixer,
13445 msm_routing_put_voice_stub_mixer),
13446 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13447 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13448 1, 0, msm_routing_get_voice_stub_mixer,
13449 msm_routing_put_voice_stub_mixer),
13450 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13451 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13452 1, 0, msm_routing_get_voice_stub_mixer,
13453 msm_routing_put_voice_stub_mixer),
13454 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13455 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13456 1, 0, msm_routing_get_voice_stub_mixer,
13457 msm_routing_put_voice_stub_mixer),
13458 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13459 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13460 1, 0, msm_routing_get_voice_stub_mixer,
13461 msm_routing_put_voice_stub_mixer),
13462 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13463 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13464 1, 0, msm_routing_get_voice_stub_mixer,
13465 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013466};
13467
13468static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013469 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13470 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013471 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13472 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013473 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13474 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013475 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13476 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013477 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13478 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013479 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13480 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013481 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13482 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013483 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13484 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013485 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13486 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013487 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13488 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013489 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13490 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013491 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13492 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013493 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13494 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013495 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13496 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013497 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13498 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013499 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13500 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013501 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13502 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013503 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13504 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013505 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13506 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013507 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13508 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013509 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13510 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013511 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13512 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013513 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13514 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013515 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13516 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013517 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13518 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013519 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13520 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013521 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13522 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013523 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13524 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013525 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13526 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013527 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13528 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013529 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13531 1, 0, msm_routing_get_voice_stub_mixer,
13532 msm_routing_put_voice_stub_mixer),
13533 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13534 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13535 1, 0, msm_routing_get_voice_stub_mixer,
13536 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013537 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13538 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13539 1, 0, msm_routing_get_voice_stub_mixer,
13540 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013541 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13542 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13543 1, 0, msm_routing_get_voice_stub_mixer,
13544 msm_routing_put_voice_stub_mixer),
13545 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13546 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13547 1, 0, msm_routing_get_voice_stub_mixer,
13548 msm_routing_put_voice_stub_mixer),
13549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13551 1, 0, msm_routing_get_voice_stub_mixer,
13552 msm_routing_put_voice_stub_mixer),
13553 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13554 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13555 1, 0, msm_routing_get_voice_stub_mixer,
13556 msm_routing_put_voice_stub_mixer),
13557 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13558 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13559 1, 0, msm_routing_get_voice_stub_mixer,
13560 msm_routing_put_voice_stub_mixer),
13561 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13562 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13563 1, 0, msm_routing_get_voice_stub_mixer,
13564 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013565};
13566
13567static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013568 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13569 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013570 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13571 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013572 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13573 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013574 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13575 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013576 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13577 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013578 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13579 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013580 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13581 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013582 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13583 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013584 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13585 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013586 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13587 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013588 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13589 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013590 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13591 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013592 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13593 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013594 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13595 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013596 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13597 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013598 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13599 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013600 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13601 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013602 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13603 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013604 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013606 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13607 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013608 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13609 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013610 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13611 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013612 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13613 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013614 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13615 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013616 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13617 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013618 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13619 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013620 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13621 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013622 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13623 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013624 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13625 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013626 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13627 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013628 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13629 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13630 1, 0, msm_routing_get_voice_stub_mixer,
13631 msm_routing_put_voice_stub_mixer),
13632 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13633 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13634 1, 0, msm_routing_get_voice_stub_mixer,
13635 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013636 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13637 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13638 1, 0, msm_routing_get_voice_stub_mixer,
13639 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013640 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13641 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13642 1, 0, msm_routing_get_voice_stub_mixer,
13643 msm_routing_put_voice_stub_mixer),
13644 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13645 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13646 1, 0, msm_routing_get_voice_stub_mixer,
13647 msm_routing_put_voice_stub_mixer),
13648 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13649 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13650 1, 0, msm_routing_get_voice_stub_mixer,
13651 msm_routing_put_voice_stub_mixer),
13652 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13653 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13654 1, 0, msm_routing_get_voice_stub_mixer,
13655 msm_routing_put_voice_stub_mixer),
13656 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13657 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13658 1, 0, msm_routing_get_voice_stub_mixer,
13659 msm_routing_put_voice_stub_mixer),
13660 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13661 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13662 1, 0, msm_routing_get_voice_stub_mixer,
13663 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013664};
13665
13666static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013667 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13668 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013669 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13670 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013671 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13672 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013673 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13674 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013675 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13676 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13677 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013678 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013679 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13680 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013681 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13682 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013683 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13684 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013685 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13686 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013687 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13688 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013689 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13690 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013691 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13692 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013693 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13694 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013695 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13696 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013697 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13698 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013699 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13700 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013701 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13702 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013703 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13704 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013705 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13706 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013707 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13708 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013709 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13710 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013711 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13712 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013713 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13714 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013715 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13716 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013717 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13718 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013719 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13720 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013721 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13722 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013723 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13724 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013725 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13726 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013727 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013729 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13730 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013731 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13732 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13733 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13734 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13735 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13736 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013737 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13738 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13739 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013740 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13741 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13742 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13743 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13744 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13745 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13746 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13747 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13748 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13749 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13750 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13751 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13752 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13753 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13754 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13755 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13756 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13757 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013758};
13759
13760static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013761 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13762 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013763 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13764 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013765 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13766 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013767 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013769 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13770 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013771 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013773 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13774 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013775 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13776 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013777 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13778 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013779 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013781 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13782 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013783 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013785 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13786 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013787 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013789 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13790 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013791 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13792 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013793 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13794 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013795 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013797 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13798 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013799 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13800 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013801 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13802 MSM_BACKEND_DAI_INT0_MI2S_RX,
13803 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13804 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013805};
13806
13807static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013808 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13809 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013810 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013812 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13813 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013814 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013816 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13817 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013818 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013820 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13821 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013822 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013824 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13825 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013826 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013828 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13829 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013830 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013832 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13833 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013834 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013836 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13837 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013838 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13839 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013840 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13841 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013842 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013844 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13845 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013846 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13847 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013848 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13849 MSM_BACKEND_DAI_INT4_MI2S_RX,
13850 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13851 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013852};
13853
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013854static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13855 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13856 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13857 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13858 msm_routing_put_port_mixer),
13859 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13860 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13861 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13862 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013863 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13864 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13865 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13866 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080013867 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13868 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13869 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13870 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013871};
13872
13873static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13874 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13875 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13876 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13877 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013878 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13879 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13880 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13881 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013882 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080013883 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053013884 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13885 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080013886 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13887 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13888 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13889 msm_routing_put_port_mixer),
13890
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013891};
13892
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013893static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013894 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13895 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013896 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013898 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13899 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013900 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013902 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13903 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013904 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13905 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013906 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13907 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013908 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013910 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13911 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013912 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013914 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13915 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013916 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013918 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13919 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013920 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013922 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13923 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013924 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013926 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13927 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013928 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013930 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13931 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013932 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13933 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013934 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13935 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013936 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013938 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13939 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013940 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013942 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13943 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013944 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013946 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13947 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013948 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013950 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13951 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013952 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13953 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013954 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13955 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013956 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013958 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13959 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013960 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013962 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13963 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013964 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013966 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13967 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013968 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013970 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13971 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013972 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13973 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013974 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13975 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013976 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013978 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13979 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053013980 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13981 msm_routing_put_port_mixer),
13982 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13983 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13984 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013985 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013986};
13987
13988static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013989 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13990 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013991 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013993 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13994 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013995 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013997 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13998 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013999 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014001 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14002 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014003 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014005 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14006 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014007 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
14008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014009 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14010 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014011 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14012 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014013};
14014
14015static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014016 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14017 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014018 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014020 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14021 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014022 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014024 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14025 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014026 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014028 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14029 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014030 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14031 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014032};
14033
14034static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014035 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14036 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014037 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014039 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14040 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014041 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014043 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14044 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014045 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14046 msm_routing_put_port_mixer),
14047};
14048
14049static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014050 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14051 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014052 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014054 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14055 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014056 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014058 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14059 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014060 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14061 msm_routing_put_port_mixer),
14062};
14063
Rohit Kumara5077932017-09-10 22:05:05 +053014064static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014065 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14066 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014067 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014069 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14070 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014071 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014073 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14074 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014075 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14076 msm_routing_put_port_mixer),
14077};
14078
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014079static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014080 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14081 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014082 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14083 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014084 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14085 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014086 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
14087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014088 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14089 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014090 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14091 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014092 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14093 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014094 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14095 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014096 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14097 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014098 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014100 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14101 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014102 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14103 msm_routing_put_port_mixer),
14104};
14105
14106static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014107 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
14108 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014109 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
14110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014111 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14112 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014113 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014115 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
14116 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014117 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
14118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014119 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
14120 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014121 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
14122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014123 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
14124 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014125 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
14126 msm_routing_put_port_mixer),
14127};
14128
14129static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014130 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14131 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014132 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014134 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14135 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014136 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014138 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14139 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014140 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014142 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14143 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014144 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014146 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14147 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014148 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014150 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14151 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014152 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014154 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14155 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014156 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014158 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14159 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014160 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014162 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14163 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014164 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014166 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14167 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014168 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014170 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14171 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014172 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014174 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14175 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014176 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14177 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014178 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14179 MSM_BACKEND_DAI_SLIMBUS_6_RX,
14180 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14181 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014182};
14183
14184static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014185 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14186 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014187 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014189 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14190 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014191 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14192 msm_routing_put_port_mixer),
14193};
14194
14195static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014196 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14197 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014198 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14199 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014200 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14201 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014202 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14203 msm_routing_put_port_mixer),
14204};
14205
14206
14207static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014208 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14209 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014210 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14211 msm_routing_put_port_mixer),
14212};
14213
14214static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014215 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14216 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014217 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14218 msm_routing_put_port_mixer),
14219};
14220
Karthikeyan Mani57550082018-05-03 18:43:58 -070014221static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14222 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14223 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14224 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14225 msm_routing_put_port_mixer),
14226};
14227
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014228static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014229 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14230 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014231 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14232 msm_routing_put_port_mixer),
14233};
14234
14235static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014236 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14237 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014238 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014240 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14241 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014242 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14243 msm_routing_put_port_mixer),
14244};
14245
14246static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014247 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14248 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014249 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014251 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14252 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014253 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014255 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14256 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014257 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014259 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14260 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014261 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014263 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14264 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014265 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014267 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14268 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014269 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014271 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14272 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014273 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014275 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14276 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014277 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014279 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14280 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014281 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14282 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014283 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14284 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014285 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14286 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014287};
14288
14289static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014290 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14291 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014292 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14293 msm_routing_put_port_mixer),
14294};
14295
14296static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014297 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14298 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014299 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014301 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14302 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014303 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14304 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014305 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14306 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014307 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014309 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14310 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014311 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014313 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14314 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014315 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014317 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14318 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014319 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014321 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14322 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014323 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014325 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14326 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014327 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014329 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14330 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014331 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14332 msm_routing_put_port_mixer),
14333};
14334
Rohit Kumara5077932017-09-10 22:05:05 +053014335static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014336 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14337 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014338 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014340 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14341 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014342 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014344 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14345 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014346 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014348 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14349 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014350 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014352 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14353 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014354 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14355 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014356 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14357 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014358 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14359 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014360 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14361 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014362 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14363 msm_routing_put_port_mixer),
14364};
14365
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014366static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014367 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14368 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014369 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14370 msm_routing_get_port_mixer,
14371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014372 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14373 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014374 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14375 msm_routing_get_port_mixer,
14376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014377 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14378 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014379 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14380 msm_routing_get_port_mixer,
14381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014382 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14383 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014384 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14385 msm_routing_get_port_mixer,
14386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014387 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14388 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014389 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14390 msm_routing_get_port_mixer,
14391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014392 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14393 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014394 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14395 msm_routing_get_port_mixer,
14396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014397 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14398 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014399 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14400 msm_routing_get_port_mixer,
14401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014402 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14403 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014404 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14405 msm_routing_get_port_mixer,
14406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014407 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14408 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014409 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14410 msm_routing_get_port_mixer,
14411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014412 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14413 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014414 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14415 msm_routing_get_port_mixer,
14416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014417 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14418 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014419 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14420 msm_routing_get_port_mixer,
14421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014422 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14423 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014424 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14425 msm_routing_get_port_mixer,
14426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014427 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14428 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014429 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14430 msm_routing_get_port_mixer,
14431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014432 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14433 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014434 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14435 msm_routing_get_port_mixer,
14436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014437 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14438 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014439 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14440 msm_routing_get_port_mixer,
14441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014442 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14443 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014444 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14445 msm_routing_get_port_mixer,
14446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014447 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14448 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014449 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14450 msm_routing_get_port_mixer,
14451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014452 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14453 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014454 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14455 msm_routing_get_port_mixer,
14456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014457 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14458 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014459 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14460 msm_routing_get_port_mixer,
14461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014462 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14463 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014464 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14465 msm_routing_get_port_mixer,
14466 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014467};
14468
14469static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014470 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14471 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014472 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14473 msm_routing_get_port_mixer,
14474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014475 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14476 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014477 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14478 msm_routing_get_port_mixer,
14479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014480 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14481 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014482 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14483 msm_routing_get_port_mixer,
14484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014485 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14486 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014487 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14488 msm_routing_get_port_mixer,
14489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014490 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14491 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014492 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14493 msm_routing_get_port_mixer,
14494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014495 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14496 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014497 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14498 msm_routing_get_port_mixer,
14499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014500 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14501 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014502 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14503 msm_routing_get_port_mixer,
14504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014505 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14506 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014507 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14508 msm_routing_get_port_mixer,
14509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014510 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14511 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014512 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14513 msm_routing_get_port_mixer,
14514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014515 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14516 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014517 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14518 msm_routing_get_port_mixer,
14519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014520 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14521 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014522 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14523 msm_routing_get_port_mixer,
14524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014525 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14526 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014527 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14528 msm_routing_get_port_mixer,
14529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014530 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14531 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014532 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14533 msm_routing_get_port_mixer,
14534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014535 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14536 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014537 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14538 msm_routing_get_port_mixer,
14539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014540 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14541 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014542 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14543 msm_routing_get_port_mixer,
14544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014545 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14546 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014547 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14548 msm_routing_get_port_mixer,
14549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014550 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14551 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014552 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14553 msm_routing_get_port_mixer,
14554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014555 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14556 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014557 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14558 msm_routing_get_port_mixer,
14559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014560 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14561 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014562 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14563 msm_routing_get_port_mixer,
14564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014565 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14566 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014567 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14568 msm_routing_get_port_mixer,
14569 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014570};
14571
14572static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014573 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14574 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014575 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14576 msm_routing_get_port_mixer,
14577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014578 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14579 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014580 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14581 msm_routing_get_port_mixer,
14582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014583 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14584 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014585 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14586 msm_routing_get_port_mixer,
14587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014588 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14589 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014590 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14591 msm_routing_get_port_mixer,
14592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014593 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14594 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014595 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14596 msm_routing_get_port_mixer,
14597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014598 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14599 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014600 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14601 msm_routing_get_port_mixer,
14602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014603 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14604 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014605 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14606 msm_routing_get_port_mixer,
14607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014608 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14609 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014610 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14611 msm_routing_get_port_mixer,
14612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014613 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14614 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014615 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14616 msm_routing_get_port_mixer,
14617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014618 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14619 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014620 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14621 msm_routing_get_port_mixer,
14622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014623 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14624 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014625 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14626 msm_routing_get_port_mixer,
14627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014628 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14629 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014630 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14631 msm_routing_get_port_mixer,
14632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014633 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14634 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014635 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14636 msm_routing_get_port_mixer,
14637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014638 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14639 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014640 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14641 msm_routing_get_port_mixer,
14642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014643 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14644 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014645 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14646 msm_routing_get_port_mixer,
14647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014648 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14649 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014650 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14651 msm_routing_get_port_mixer,
14652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014653 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14654 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014655 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14656 msm_routing_get_port_mixer,
14657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014658 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14659 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014660 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14661 msm_routing_get_port_mixer,
14662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014663 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14664 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014665 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14666 msm_routing_get_port_mixer,
14667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014668 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14669 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014670 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14671 msm_routing_get_port_mixer,
14672 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014673};
14674
14675static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014676 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14677 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014678 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14679 msm_routing_get_port_mixer,
14680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014681 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14682 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014683 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14684 msm_routing_get_port_mixer,
14685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014686 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14687 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014688 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14689 msm_routing_get_port_mixer,
14690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014691 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14692 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014693 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14694 msm_routing_get_port_mixer,
14695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014696 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14697 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014698 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14699 msm_routing_get_port_mixer,
14700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014701 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014703 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14704 msm_routing_get_port_mixer,
14705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014706 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14707 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014708 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14709 msm_routing_get_port_mixer,
14710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014711 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14712 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014713 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14714 msm_routing_get_port_mixer,
14715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014716 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14717 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014718 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14719 msm_routing_get_port_mixer,
14720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014721 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014723 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14724 msm_routing_get_port_mixer,
14725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014726 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14727 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014728 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14729 msm_routing_get_port_mixer,
14730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014731 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14732 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014733 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14734 msm_routing_get_port_mixer,
14735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014736 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14737 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014738 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14739 msm_routing_get_port_mixer,
14740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014741 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14742 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014743 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14744 msm_routing_get_port_mixer,
14745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014746 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14747 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014748 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14749 msm_routing_get_port_mixer,
14750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014751 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14752 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014753 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14754 msm_routing_get_port_mixer,
14755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014756 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14757 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014758 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14759 msm_routing_get_port_mixer,
14760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014761 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014763 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14764 msm_routing_get_port_mixer,
14765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014766 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14767 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014768 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14769 msm_routing_get_port_mixer,
14770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014771 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14772 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014773 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14774 msm_routing_get_port_mixer,
14775 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014776};
14777
14778static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014779 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14780 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014781 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14782 msm_routing_get_port_mixer,
14783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014784 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14785 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014786 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14787 msm_routing_get_port_mixer,
14788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014789 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14790 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014791 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14792 msm_routing_get_port_mixer,
14793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014794 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14795 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014796 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14797 msm_routing_get_port_mixer,
14798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014799 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14800 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014801 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14802 msm_routing_get_port_mixer,
14803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014804 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14805 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014806 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14807 msm_routing_get_port_mixer,
14808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014809 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14810 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014811 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14812 msm_routing_get_port_mixer,
14813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014814 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14815 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014816 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14817 msm_routing_get_port_mixer,
14818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014819 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14820 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014821 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14822 msm_routing_get_port_mixer,
14823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014824 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14825 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014826 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14827 msm_routing_get_port_mixer,
14828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014829 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014831 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14832 msm_routing_get_port_mixer,
14833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014834 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14835 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014836 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14837 msm_routing_get_port_mixer,
14838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014839 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14840 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014841 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14842 msm_routing_get_port_mixer,
14843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014844 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14845 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014846 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14847 msm_routing_get_port_mixer,
14848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014849 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014851 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14852 msm_routing_get_port_mixer,
14853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014854 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14855 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014856 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14857 msm_routing_get_port_mixer,
14858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014859 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14860 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014861 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14862 msm_routing_get_port_mixer,
14863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014864 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14865 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014866 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14867 msm_routing_get_port_mixer,
14868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014869 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14870 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014871 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14872 msm_routing_get_port_mixer,
14873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014874 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14875 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014876 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14877 msm_routing_get_port_mixer,
14878 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014879};
14880
14881static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014882 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14883 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014884 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14885 msm_routing_get_port_mixer,
14886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014887 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14888 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014889 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14890 msm_routing_get_port_mixer,
14891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014892 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14893 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014894 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14895 msm_routing_get_port_mixer,
14896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014897 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14898 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014899 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14900 msm_routing_get_port_mixer,
14901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014902 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14903 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014904 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14905 msm_routing_get_port_mixer,
14906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014907 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14908 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014909 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14910 msm_routing_get_port_mixer,
14911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014912 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14913 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014914 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14915 msm_routing_get_port_mixer,
14916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014917 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14918 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014919 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14920 msm_routing_get_port_mixer,
14921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014922 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14923 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014924 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14925 msm_routing_get_port_mixer,
14926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014927 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14928 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014929 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14930 msm_routing_get_port_mixer,
14931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014932 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14933 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014934 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14935 msm_routing_get_port_mixer,
14936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014937 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14938 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014939 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14940 msm_routing_get_port_mixer,
14941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014942 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14943 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014944 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14945 msm_routing_get_port_mixer,
14946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014947 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14948 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014949 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14950 msm_routing_get_port_mixer,
14951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014952 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14953 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014954 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14955 msm_routing_get_port_mixer,
14956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014957 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14958 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014959 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14960 msm_routing_get_port_mixer,
14961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014962 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14963 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014964 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14965 msm_routing_get_port_mixer,
14966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014967 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14968 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014969 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14970 msm_routing_get_port_mixer,
14971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014972 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14973 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014974 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14975 msm_routing_get_port_mixer,
14976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014977 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14978 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014979 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14980 msm_routing_get_port_mixer,
14981 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014982};
14983
14984static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014985 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14986 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014987 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14988 msm_routing_get_port_mixer,
14989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014990 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14991 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014992 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14993 msm_routing_get_port_mixer,
14994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014995 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14996 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014997 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14998 msm_routing_get_port_mixer,
14999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015000 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15001 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015002 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15003 msm_routing_get_port_mixer,
15004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015005 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15006 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015007 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15008 msm_routing_get_port_mixer,
15009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015010 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15011 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015012 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15013 msm_routing_get_port_mixer,
15014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015015 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15016 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015017 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15018 msm_routing_get_port_mixer,
15019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015020 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15021 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015022 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15023 msm_routing_get_port_mixer,
15024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015025 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15026 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015027 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15028 msm_routing_get_port_mixer,
15029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015030 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15031 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015032 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15033 msm_routing_get_port_mixer,
15034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015035 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015037 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15038 msm_routing_get_port_mixer,
15039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015040 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15041 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015042 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15043 msm_routing_get_port_mixer,
15044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015045 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15046 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015047 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15048 msm_routing_get_port_mixer,
15049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015050 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15051 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015052 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15053 msm_routing_get_port_mixer,
15054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015055 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15056 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015057 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15058 msm_routing_get_port_mixer,
15059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015060 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15061 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015062 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15063 msm_routing_get_port_mixer,
15064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015065 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15066 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015067 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15068 msm_routing_get_port_mixer,
15069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015070 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15071 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015072 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15073 msm_routing_get_port_mixer,
15074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015075 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015077 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15078 msm_routing_get_port_mixer,
15079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015080 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15081 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015082 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15083 msm_routing_get_port_mixer,
15084 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015085};
15086
15087static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015088 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15089 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015090 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15091 msm_routing_get_port_mixer,
15092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015093 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15094 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015095 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15096 msm_routing_get_port_mixer,
15097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015098 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15099 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015100 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15101 msm_routing_get_port_mixer,
15102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015103 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15104 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015105 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15106 msm_routing_get_port_mixer,
15107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015108 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15109 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015110 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15111 msm_routing_get_port_mixer,
15112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015113 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15114 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015115 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15116 msm_routing_get_port_mixer,
15117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015118 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15119 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015120 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15121 msm_routing_get_port_mixer,
15122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015123 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15124 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015125 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15126 msm_routing_get_port_mixer,
15127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015128 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15129 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015130 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15131 msm_routing_get_port_mixer,
15132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015133 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15134 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015135 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15136 msm_routing_get_port_mixer,
15137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015138 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15139 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015140 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15141 msm_routing_get_port_mixer,
15142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015143 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15144 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015145 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15146 msm_routing_get_port_mixer,
15147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015148 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15149 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015150 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15151 msm_routing_get_port_mixer,
15152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015153 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15154 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015155 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15156 msm_routing_get_port_mixer,
15157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015158 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15159 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015160 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15161 msm_routing_get_port_mixer,
15162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015163 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15164 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015165 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15166 msm_routing_get_port_mixer,
15167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015168 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15169 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015170 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15171 msm_routing_get_port_mixer,
15172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015173 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15174 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015175 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15176 msm_routing_get_port_mixer,
15177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015178 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15179 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015180 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15181 msm_routing_get_port_mixer,
15182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015183 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15184 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015185 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15186 msm_routing_get_port_mixer,
15187 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015188};
15189
Derek Chenfdcc0982018-10-02 15:14:03 -070015190static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15191 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15192 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15193 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15194 msm_routing_get_port_mixer,
15195 msm_routing_put_port_mixer),
15196};
15197
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015198static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015199 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15200 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015201 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15202 msm_routing_get_port_mixer,
15203 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015204 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15205 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015206 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15207 msm_routing_get_port_mixer,
15208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015209 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15210 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015211 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15212 msm_routing_get_port_mixer,
15213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015214 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15215 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015216 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15217 msm_routing_get_port_mixer,
15218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015219 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15220 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015221 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15222 msm_routing_get_port_mixer,
15223 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015224 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15225 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015226 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15227 msm_routing_get_port_mixer,
15228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015229 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15230 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015231 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15232 msm_routing_get_port_mixer,
15233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015234 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15235 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015236 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15237 msm_routing_get_port_mixer,
15238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015239 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15240 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015241 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15242 msm_routing_get_port_mixer,
15243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015244 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15245 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015246 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15247 msm_routing_get_port_mixer,
15248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015249 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15250 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015251 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15252 msm_routing_get_port_mixer,
15253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015254 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15255 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015256 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15257 msm_routing_get_port_mixer,
15258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015259 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15260 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015261 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15262 msm_routing_get_port_mixer,
15263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015264 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15265 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015266 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15267 msm_routing_get_port_mixer,
15268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015269 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15270 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015271 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15272 msm_routing_get_port_mixer,
15273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015274 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15275 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015276 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15277 msm_routing_get_port_mixer,
15278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015279 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15280 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015281 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15282 msm_routing_get_port_mixer,
15283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015284 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15285 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015286 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15287 msm_routing_get_port_mixer,
15288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015289 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15290 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015291 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15292 msm_routing_get_port_mixer,
15293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015294 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15295 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015296 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15297 msm_routing_get_port_mixer,
15298 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015299};
15300
15301static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015302 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15303 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015304 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15305 msm_routing_get_port_mixer,
15306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015307 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15308 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015309 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15310 msm_routing_get_port_mixer,
15311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015312 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15313 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015314 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15315 msm_routing_get_port_mixer,
15316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015317 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15318 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015319 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15320 msm_routing_get_port_mixer,
15321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015322 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15323 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015324 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15325 msm_routing_get_port_mixer,
15326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015327 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15328 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015329 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15330 msm_routing_get_port_mixer,
15331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015332 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15333 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015334 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15335 msm_routing_get_port_mixer,
15336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015337 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15338 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015339 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15340 msm_routing_get_port_mixer,
15341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015342 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15343 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015344 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15345 msm_routing_get_port_mixer,
15346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015347 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15348 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015349 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15350 msm_routing_get_port_mixer,
15351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015352 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15353 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015354 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15355 msm_routing_get_port_mixer,
15356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015357 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15358 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015359 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15360 msm_routing_get_port_mixer,
15361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015362 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15363 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015364 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15365 msm_routing_get_port_mixer,
15366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015367 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15368 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015369 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15370 msm_routing_get_port_mixer,
15371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015372 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15373 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015374 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15375 msm_routing_get_port_mixer,
15376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015377 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15378 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015379 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15380 msm_routing_get_port_mixer,
15381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015382 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15383 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015384 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15385 msm_routing_get_port_mixer,
15386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015387 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15388 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015389 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15390 msm_routing_get_port_mixer,
15391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015392 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15393 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015394 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15395 msm_routing_get_port_mixer,
15396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015397 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15398 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015399 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15400 msm_routing_get_port_mixer,
15401 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015402};
15403
15404static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015405 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15406 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015407 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15408 msm_routing_get_port_mixer,
15409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015410 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15411 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015412 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15413 msm_routing_get_port_mixer,
15414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015415 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15416 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015417 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15418 msm_routing_get_port_mixer,
15419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015420 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15421 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015422 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15423 msm_routing_get_port_mixer,
15424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015425 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15426 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015427 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15428 msm_routing_get_port_mixer,
15429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015430 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15431 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015432 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15433 msm_routing_get_port_mixer,
15434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015435 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15436 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015437 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15438 msm_routing_get_port_mixer,
15439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015440 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15441 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015442 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15443 msm_routing_get_port_mixer,
15444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015445 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15446 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015447 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15448 msm_routing_get_port_mixer,
15449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015450 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15451 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015452 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15453 msm_routing_get_port_mixer,
15454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015455 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15456 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015457 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15458 msm_routing_get_port_mixer,
15459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015460 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15461 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015462 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15463 msm_routing_get_port_mixer,
15464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015465 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15466 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015467 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15468 msm_routing_get_port_mixer,
15469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015470 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15471 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015472 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15473 msm_routing_get_port_mixer,
15474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015475 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15476 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015477 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15478 msm_routing_get_port_mixer,
15479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015480 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15481 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015482 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15483 msm_routing_get_port_mixer,
15484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015485 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15486 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015487 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15488 msm_routing_get_port_mixer,
15489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015490 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15491 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015492 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15493 msm_routing_get_port_mixer,
15494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015495 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15496 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015497 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15498 msm_routing_get_port_mixer,
15499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015500 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15501 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015502 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15503 msm_routing_get_port_mixer,
15504 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015505};
15506
15507static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015508 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15509 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015510 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15511 msm_routing_get_port_mixer,
15512 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015513 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15514 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015515 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15516 msm_routing_get_port_mixer,
15517 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015518 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15519 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015520 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15521 msm_routing_get_port_mixer,
15522 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015523 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15524 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015525 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15526 msm_routing_get_port_mixer,
15527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015528 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15529 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015530 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15531 msm_routing_get_port_mixer,
15532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015533 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15534 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015535 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15536 msm_routing_get_port_mixer,
15537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015538 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15539 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015540 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15541 msm_routing_get_port_mixer,
15542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015543 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15544 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015545 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15546 msm_routing_get_port_mixer,
15547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015548 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15549 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015550 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15551 msm_routing_get_port_mixer,
15552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015553 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15554 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015555 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15556 msm_routing_get_port_mixer,
15557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015558 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15559 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015560 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15561 msm_routing_get_port_mixer,
15562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015563 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15564 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015565 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15566 msm_routing_get_port_mixer,
15567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015568 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15569 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015570 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15571 msm_routing_get_port_mixer,
15572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015573 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15574 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015575 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15576 msm_routing_get_port_mixer,
15577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015578 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15579 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015580 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15581 msm_routing_get_port_mixer,
15582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015583 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15584 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015585 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15586 msm_routing_get_port_mixer,
15587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015588 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15589 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015590 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15591 msm_routing_get_port_mixer,
15592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015593 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15594 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015595 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15596 msm_routing_get_port_mixer,
15597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015598 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15599 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015600 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15601 msm_routing_get_port_mixer,
15602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015603 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15604 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015605 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15606 msm_routing_get_port_mixer,
15607 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015608};
15609
15610static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015611 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15612 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015613 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15614 msm_routing_get_port_mixer,
15615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015616 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15617 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015618 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15619 msm_routing_get_port_mixer,
15620 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015621 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15622 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015623 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15624 msm_routing_get_port_mixer,
15625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015626 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15627 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015628 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15629 msm_routing_get_port_mixer,
15630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015631 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15632 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015633 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15634 msm_routing_get_port_mixer,
15635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015636 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15637 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015638 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15639 msm_routing_get_port_mixer,
15640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015641 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15642 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015643 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15644 msm_routing_get_port_mixer,
15645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015646 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15647 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015648 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15649 msm_routing_get_port_mixer,
15650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015651 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15652 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015653 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15654 msm_routing_get_port_mixer,
15655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015656 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15657 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015658 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15659 msm_routing_get_port_mixer,
15660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015661 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15662 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015663 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15664 msm_routing_get_port_mixer,
15665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015666 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15667 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015668 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15669 msm_routing_get_port_mixer,
15670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015671 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15672 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015673 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15674 msm_routing_get_port_mixer,
15675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015676 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15677 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015678 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15679 msm_routing_get_port_mixer,
15680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015681 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15682 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015683 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15684 msm_routing_get_port_mixer,
15685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015686 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15687 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015688 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15689 msm_routing_get_port_mixer,
15690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015691 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15692 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015693 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15694 msm_routing_get_port_mixer,
15695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015696 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15697 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015698 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15699 msm_routing_get_port_mixer,
15700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015701 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15702 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015703 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15704 msm_routing_get_port_mixer,
15705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015706 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15707 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015708 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15709 msm_routing_get_port_mixer,
15710 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015711};
15712
15713static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015714 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15715 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015716 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15717 msm_routing_get_port_mixer,
15718 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015719 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15720 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015721 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15722 msm_routing_get_port_mixer,
15723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015724 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15725 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015726 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15727 msm_routing_get_port_mixer,
15728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015729 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15730 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015731 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15732 msm_routing_get_port_mixer,
15733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015734 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15735 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015736 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15737 msm_routing_get_port_mixer,
15738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015739 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15740 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015741 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15742 msm_routing_get_port_mixer,
15743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015744 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15745 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015746 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15747 msm_routing_get_port_mixer,
15748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015749 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15750 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015751 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15752 msm_routing_get_port_mixer,
15753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015754 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15755 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015756 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15757 msm_routing_get_port_mixer,
15758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015759 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15760 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015761 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15762 msm_routing_get_port_mixer,
15763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015764 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15765 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015766 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15767 msm_routing_get_port_mixer,
15768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015769 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15770 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015771 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15772 msm_routing_get_port_mixer,
15773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015774 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15775 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015776 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15777 msm_routing_get_port_mixer,
15778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015779 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15780 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015781 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15782 msm_routing_get_port_mixer,
15783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015784 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15785 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015786 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15787 msm_routing_get_port_mixer,
15788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015789 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15790 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015791 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15792 msm_routing_get_port_mixer,
15793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015794 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15795 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015796 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15797 msm_routing_get_port_mixer,
15798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015799 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15800 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015801 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15802 msm_routing_get_port_mixer,
15803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015804 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15805 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015806 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15807 msm_routing_get_port_mixer,
15808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015809 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15810 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015811 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15812 msm_routing_get_port_mixer,
15813 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015814};
15815
15816static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015817 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15818 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015819 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15820 msm_routing_get_port_mixer,
15821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015822 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15823 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015824 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15825 msm_routing_get_port_mixer,
15826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015827 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15828 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015829 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15830 msm_routing_get_port_mixer,
15831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015832 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15833 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015834 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15835 msm_routing_get_port_mixer,
15836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015837 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15838 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015839 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15840 msm_routing_get_port_mixer,
15841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015842 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15843 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015844 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15845 msm_routing_get_port_mixer,
15846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015847 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15848 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015849 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15850 msm_routing_get_port_mixer,
15851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015852 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15853 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015854 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15855 msm_routing_get_port_mixer,
15856 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015857 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15858 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015859 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15860 msm_routing_get_port_mixer,
15861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015862 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15863 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015864 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15865 msm_routing_get_port_mixer,
15866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015867 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015869 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15870 msm_routing_get_port_mixer,
15871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015872 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15873 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015874 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15875 msm_routing_get_port_mixer,
15876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015877 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15878 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015879 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15880 msm_routing_get_port_mixer,
15881 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015882 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15883 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015884 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15885 msm_routing_get_port_mixer,
15886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015887 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15888 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015889 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15890 msm_routing_get_port_mixer,
15891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015892 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15893 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015894 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15895 msm_routing_get_port_mixer,
15896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015897 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15898 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015899 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15900 msm_routing_get_port_mixer,
15901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015902 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15903 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015904 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15905 msm_routing_get_port_mixer,
15906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015907 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15908 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015909 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15910 msm_routing_get_port_mixer,
15911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015912 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15913 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015914 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15915 msm_routing_get_port_mixer,
15916 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015917};
15918
15919static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015920 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15921 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015922 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15923 msm_routing_get_port_mixer,
15924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015925 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15926 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015927 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15928 msm_routing_get_port_mixer,
15929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015930 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15931 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015932 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15933 msm_routing_get_port_mixer,
15934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015935 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15936 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015937 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15938 msm_routing_get_port_mixer,
15939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015940 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15941 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015942 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15943 msm_routing_get_port_mixer,
15944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015945 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15946 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015947 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15948 msm_routing_get_port_mixer,
15949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015950 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15951 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015952 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15953 msm_routing_get_port_mixer,
15954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015955 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15956 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015957 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15958 msm_routing_get_port_mixer,
15959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015960 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15961 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015962 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15963 msm_routing_get_port_mixer,
15964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015965 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15966 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015967 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15968 msm_routing_get_port_mixer,
15969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015970 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15971 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015972 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15973 msm_routing_get_port_mixer,
15974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015975 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15976 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015977 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15978 msm_routing_get_port_mixer,
15979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015980 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015982 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15983 msm_routing_get_port_mixer,
15984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015985 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15986 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015987 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15988 msm_routing_get_port_mixer,
15989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015990 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15991 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015992 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15993 msm_routing_get_port_mixer,
15994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015995 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15996 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015997 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15998 msm_routing_get_port_mixer,
15999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016000 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16001 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016002 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16003 msm_routing_get_port_mixer,
16004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016005 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16006 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016007 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16008 msm_routing_get_port_mixer,
16009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016010 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16011 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016012 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16013 msm_routing_get_port_mixer,
16014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016015 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16016 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016017 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16018 msm_routing_get_port_mixer,
16019 msm_routing_put_port_mixer),
16020};
16021
16022static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016023 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16024 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016025 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16026 msm_routing_get_port_mixer,
16027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016028 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16029 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016030 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16031 msm_routing_get_port_mixer,
16032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016033 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16034 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016035 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16036 msm_routing_get_port_mixer,
16037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016038 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16039 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016040 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16041 msm_routing_get_port_mixer,
16042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016043 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16044 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016045 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16046 msm_routing_get_port_mixer,
16047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016048 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16049 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016050 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16051 msm_routing_get_port_mixer,
16052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016053 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16054 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016055 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16056 msm_routing_get_port_mixer,
16057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016058 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16059 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016060 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16061 msm_routing_get_port_mixer,
16062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016063 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16064 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016065 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16066 msm_routing_get_port_mixer,
16067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016068 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16069 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016070 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16071 msm_routing_get_port_mixer,
16072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016073 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16074 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016075 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16076 msm_routing_get_port_mixer,
16077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016078 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16079 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016080 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16081 msm_routing_get_port_mixer,
16082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016083 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16084 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016085 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16086 msm_routing_get_port_mixer,
16087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016088 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16089 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016090 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16091 msm_routing_get_port_mixer,
16092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016093 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16094 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016095 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16096 msm_routing_get_port_mixer,
16097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016098 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16099 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016100 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16101 msm_routing_get_port_mixer,
16102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016103 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16104 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016105 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16106 msm_routing_get_port_mixer,
16107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016108 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16109 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016110 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16111 msm_routing_get_port_mixer,
16112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016113 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16114 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016115 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16116 msm_routing_get_port_mixer,
16117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016118 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16119 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016120 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16121 msm_routing_get_port_mixer,
16122 msm_routing_put_port_mixer),
16123};
16124
16125static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016126 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16127 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016128 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16129 msm_routing_get_port_mixer,
16130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016131 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16132 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016133 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16134 msm_routing_get_port_mixer,
16135 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016136 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16137 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016138 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16139 msm_routing_get_port_mixer,
16140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016141 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16142 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016143 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16144 msm_routing_get_port_mixer,
16145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016146 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16147 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016148 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16149 msm_routing_get_port_mixer,
16150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016151 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16152 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016153 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16154 msm_routing_get_port_mixer,
16155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016156 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16157 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016158 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16159 msm_routing_get_port_mixer,
16160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016161 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16162 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016163 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16164 msm_routing_get_port_mixer,
16165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016166 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16167 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016168 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16169 msm_routing_get_port_mixer,
16170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016171 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16172 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016173 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16174 msm_routing_get_port_mixer,
16175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016176 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16177 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016178 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16179 msm_routing_get_port_mixer,
16180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016181 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016183 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16184 msm_routing_get_port_mixer,
16185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016186 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16187 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016188 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16189 msm_routing_get_port_mixer,
16190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016191 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016193 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16194 msm_routing_get_port_mixer,
16195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016196 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016198 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16199 msm_routing_get_port_mixer,
16200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016201 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16202 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016203 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16204 msm_routing_get_port_mixer,
16205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016206 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16207 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016208 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16209 msm_routing_get_port_mixer,
16210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016211 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16212 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016213 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16214 msm_routing_get_port_mixer,
16215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016216 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16217 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016218 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16219 msm_routing_get_port_mixer,
16220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016221 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16222 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016223 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16224 msm_routing_get_port_mixer,
16225 msm_routing_put_port_mixer),
16226};
16227
16228static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016229 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16230 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016231 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16232 msm_routing_get_port_mixer,
16233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016234 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16235 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016236 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16237 msm_routing_get_port_mixer,
16238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016239 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16240 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016241 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16242 msm_routing_get_port_mixer,
16243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016244 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16245 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016246 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16247 msm_routing_get_port_mixer,
16248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016249 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16250 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016251 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16252 msm_routing_get_port_mixer,
16253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016254 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16255 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016256 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16257 msm_routing_get_port_mixer,
16258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016259 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16260 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016261 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16262 msm_routing_get_port_mixer,
16263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016264 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16265 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016266 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16267 msm_routing_get_port_mixer,
16268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016269 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16270 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016271 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16272 msm_routing_get_port_mixer,
16273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016274 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16275 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016276 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16277 msm_routing_get_port_mixer,
16278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016279 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16280 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016281 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16282 msm_routing_get_port_mixer,
16283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016284 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16285 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016286 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16287 msm_routing_get_port_mixer,
16288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016289 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16290 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016291 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16292 msm_routing_get_port_mixer,
16293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016294 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16295 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016296 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16297 msm_routing_get_port_mixer,
16298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016299 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16300 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016301 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16302 msm_routing_get_port_mixer,
16303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016304 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16305 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016306 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16307 msm_routing_get_port_mixer,
16308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016309 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16310 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016311 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16312 msm_routing_get_port_mixer,
16313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016314 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16315 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016316 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16317 msm_routing_get_port_mixer,
16318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016319 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16320 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016321 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16322 msm_routing_get_port_mixer,
16323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016324 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16325 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016326 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16327 msm_routing_get_port_mixer,
16328 msm_routing_put_port_mixer),
16329};
16330
16331static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016332 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16333 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016334 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16335 msm_routing_get_port_mixer,
16336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016337 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16338 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016339 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16340 msm_routing_get_port_mixer,
16341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016342 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16343 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016344 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16345 msm_routing_get_port_mixer,
16346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016347 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16348 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016349 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16350 msm_routing_get_port_mixer,
16351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016352 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16353 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016354 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16355 msm_routing_get_port_mixer,
16356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016357 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16358 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016359 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16360 msm_routing_get_port_mixer,
16361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016362 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16363 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016364 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16365 msm_routing_get_port_mixer,
16366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016367 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16368 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016369 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16370 msm_routing_get_port_mixer,
16371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016372 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16373 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016374 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16375 msm_routing_get_port_mixer,
16376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016377 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16378 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016379 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16380 msm_routing_get_port_mixer,
16381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016382 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16383 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016384 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16385 msm_routing_get_port_mixer,
16386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016387 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16388 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016389 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16390 msm_routing_get_port_mixer,
16391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016392 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16393 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016394 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16395 msm_routing_get_port_mixer,
16396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016397 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16398 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016399 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16400 msm_routing_get_port_mixer,
16401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016402 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16403 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016404 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16405 msm_routing_get_port_mixer,
16406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016407 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16408 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016409 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16410 msm_routing_get_port_mixer,
16411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016412 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16413 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016414 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16415 msm_routing_get_port_mixer,
16416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016417 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16418 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016419 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16420 msm_routing_get_port_mixer,
16421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016422 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16423 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016424 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16425 msm_routing_get_port_mixer,
16426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016427 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16428 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016429 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16430 msm_routing_get_port_mixer,
16431 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016432};
16433
16434static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016435 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16436 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016437 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016439 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16440 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016441 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016443 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16444 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016445 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016447 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16448 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016449 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016451 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16452 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016453 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016455 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16456 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016457 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16458 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016459 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16460 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016461 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16462 msm_routing_put_port_mixer),
16463};
16464
16465static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016466 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16467 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016468 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016470 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16471 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016472 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16473 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016474 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16475 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016476 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16477 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016478 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16479 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016480 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016482 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16483 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016484 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016486 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16487 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016488 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016490 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16491 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016492 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016494 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16495 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016496 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016498 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16499 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016500 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16501 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016502};
16503
16504static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016505 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16506 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016507 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16508 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016509 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16510 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016511 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16512 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016513 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16514 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016515 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16516 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016517 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16518 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016519 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16520 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016521 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16522 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016523 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16524 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016525 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16526 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016527 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16528 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016529 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16530 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016531 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16532 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016533 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16534 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016535 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16536 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016537 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16538 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16539 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16540 msm_routing_put_listen_mixer),
16541 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16542 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16543 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16544 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016545 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16546 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16547 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16548 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16550 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16551 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16552 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016553 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16554 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16555 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16556 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016557};
16558
16559static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016560 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16561 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016562 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16563 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016564 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16565 SND_SOC_NOPM,
16566 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016567 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16568 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016569 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16570 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016571 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16572 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016573 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16574 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016575 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16576 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016577 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16578 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016579 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16580 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016581 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16582 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016583 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16584 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016585 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16586 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016587 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16588 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016589 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16590 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016591 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16592 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016593 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16594 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16595 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16596 msm_routing_put_listen_mixer),
16597 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16598 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16599 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16600 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016601 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16602 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16603 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16604 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016605 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16606 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16607 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16608 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016609 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16610 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16611 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16612 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016613};
16614
16615static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016616 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16617 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016618 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16619 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016620 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16621 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016622 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16623 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016624 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16625 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016626 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16627 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016628 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16629 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016630 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16631 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016632 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16633 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016634 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16635 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016636 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16637 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016638 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16639 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016640 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16641 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016642 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16643 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016644 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16645 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016646 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16647 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016648 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16649 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16650 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16651 msm_routing_put_listen_mixer),
16652 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16653 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16654 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16655 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016656 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16657 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16658 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16659 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016660 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16661 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16662 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16663 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016664 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16665 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16666 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16667 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016668};
16669
16670static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016671 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16672 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016673 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16674 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016675 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16676 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016677 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16678 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016679 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16680 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016681 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16682 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016683 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16684 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016685 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16686 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016687 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16688 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016689 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16690 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016691 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16692 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016693 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16694 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016695 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16696 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016697 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16698 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016699 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16700 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016701 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16702 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016703 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16704 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16705 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16706 msm_routing_put_listen_mixer),
16707 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16708 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16709 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16710 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016711 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16712 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16713 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16714 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016715 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16716 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16717 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16718 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016719 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16720 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16721 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16722 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016723};
16724
16725static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016726 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16727 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016728 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16729 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016730 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16731 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016732 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16733 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016734 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16735 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016736 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16737 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016738 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16739 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016740 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16741 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016742 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16743 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016744 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16745 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016746 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16747 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016748 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16749 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016750 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16751 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016752 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16753 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016754 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16755 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016756 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16757 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016758 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16759 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16760 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16761 msm_routing_put_listen_mixer),
16762 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16763 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16764 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16765 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016766 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16767 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16768 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16769 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016770 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16771 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16772 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16773 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016774 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16775 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16776 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16777 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016778};
16779
16780static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016781 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16782 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016783 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16784 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016785 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16786 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016787 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16788 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016789 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16790 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016791 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16792 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016793 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16794 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016795 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16796 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016797 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16798 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016799 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16800 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016801 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16802 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016803 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16804 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016805 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16806 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016807 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16808 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016809 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16810 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016811 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16812 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016813 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16814 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16815 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16816 msm_routing_put_listen_mixer),
16817 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16818 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16819 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16820 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016821 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16822 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16823 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16824 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016825 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16826 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16827 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16828 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016829 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16830 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16831 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16832 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016833};
16834
16835static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016836 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16837 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016838 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16839 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016840 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16841 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016842 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16843 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016844 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16845 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016846 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16847 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016848 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16849 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016850 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16851 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016852 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16853 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016854 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16855 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016856 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16857 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016858 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16859 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016860 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16861 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016862 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16863 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016864 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16865 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016866 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16867 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016868 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16869 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16870 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16871 msm_routing_put_listen_mixer),
16872 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16873 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16874 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16875 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016876 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16877 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16878 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16879 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016880 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16881 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16882 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16883 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016884 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16885 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16886 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16887 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016888};
16889
16890static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016891 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16892 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016893 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16894 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016895 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16896 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016897 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16898 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016899 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16900 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016901 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16902 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016903 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16904 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016905 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16906 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016907 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16908 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016909 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16910 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016911 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16912 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016913 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16914 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016915 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16916 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016917 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16918 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016919 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16920 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016921 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16922 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016923 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16924 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16925 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16926 msm_routing_put_listen_mixer),
16927 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16928 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16929 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16930 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016931 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16932 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16933 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16934 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016935 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16936 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16937 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16938 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016939 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16940 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16941 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16942 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016943};
16944
16945static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16946 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16947 0, 1, 0, msm_routing_get_switch_mixer,
16948 msm_routing_put_switch_mixer);
16949
16950static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16951 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16952 0, 1, 0, msm_routing_get_switch_mixer,
16953 msm_routing_put_switch_mixer);
16954
16955static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16956 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16957 0, 1, 0, msm_routing_get_switch_mixer,
16958 msm_routing_put_switch_mixer);
16959
16960static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16961 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16962 0, 1, 0, msm_routing_get_switch_mixer,
16963 msm_routing_put_switch_mixer);
16964
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016965static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
16966 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16967 0, 1, 0, msm_routing_get_switch_mixer,
16968 msm_routing_put_switch_mixer);
16969
16970static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016971 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16972 0, 1, 0, msm_routing_get_switch_mixer,
16973 msm_routing_put_switch_mixer);
16974
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016975static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16976 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16977 0, 1, 0, msm_routing_get_switch_mixer,
16978 msm_routing_put_switch_mixer);
16979
16980static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16981 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16982 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16983 msm_routing_put_fm_pcmrx_switch_mixer);
16984
16985static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16986 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16987 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16988 msm_routing_put_int0_mi2s_switch_mixer);
16989
16990static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16991 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16992 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16993 msm_routing_put_int4_mi2s_switch_mixer);
16994
16995static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16996 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16997 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16998 msm_routing_put_pri_mi2s_switch_mixer);
16999
17000static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
17001 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17002 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
17003 msm_routing_put_sec_mi2s_switch_mixer);
17004
17005static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
17006 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17007 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
17008 msm_routing_put_tert_mi2s_switch_mixer);
17009
17010static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
17011 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17012 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
17013 msm_routing_put_quat_mi2s_switch_mixer);
17014
Rohit Kumara5077932017-09-10 22:05:05 +053017015static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
17016 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17017 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
17018 msm_routing_put_quin_mi2s_switch_mixer);
17019
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017020static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
17021 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17022 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17023 msm_routing_put_hfp_switch_mixer);
17024
17025static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
17026 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17027 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17028 msm_routing_put_hfp_switch_mixer);
17029
17030static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
17031 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17032 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17033 msm_routing_put_hfp_switch_mixer);
17034
17035static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
17036 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17037 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17038 msm_routing_put_hfp_switch_mixer);
17039
17040static const struct snd_kcontrol_new usb_switch_mixer_controls =
17041 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17042 0, 1, 0, msm_routing_get_usb_switch_mixer,
17043 msm_routing_put_usb_switch_mixer);
17044
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080017045static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
17046 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17047 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
17048 msm_routing_a2dp_switch_mixer_put);
17049
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017050static const struct soc_enum lsm_port_enum =
17051 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
17052
17053static const char * const lsm_func_text[] = {
17054 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
17055};
17056static const struct soc_enum lsm_func_enum =
17057 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
17058
17059static const struct snd_kcontrol_new lsm_controls[] = {
17060 /* kcontrol of lsm_function */
17061 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17062 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17063 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17064 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17065 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17066 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17067 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17068 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17069 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17070 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17071 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17072 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17073 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17074 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17075 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17076 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17077 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17078 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017079 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17080 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017081 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17082 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017083 /* kcontrol of lsm_port */
17084 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
17085 msm_routing_lsm_port_get,
17086 msm_routing_lsm_port_put),
17087 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
17088 msm_routing_lsm_port_get,
17089 msm_routing_lsm_port_put),
17090 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
17091 msm_routing_lsm_port_get,
17092 msm_routing_lsm_port_put),
17093 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
17094 msm_routing_lsm_port_get,
17095 msm_routing_lsm_port_put),
17096 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
17097 msm_routing_lsm_port_get,
17098 msm_routing_lsm_port_put),
17099 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
17100 msm_routing_lsm_port_get,
17101 msm_routing_lsm_port_put),
17102 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
17103 msm_routing_lsm_port_get,
17104 msm_routing_lsm_port_put),
17105 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
17106 msm_routing_lsm_port_get,
17107 msm_routing_lsm_port_put),
17108};
17109
17110static const char * const aanc_slim_0_rx_text[] = {
17111 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
17112 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
17113};
17114
17115static const struct soc_enum aanc_slim_0_rx_enum =
17116 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
17117 aanc_slim_0_rx_text);
17118
17119static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
17120 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
17121 msm_routing_slim_0_rx_aanc_mux_get,
17122 msm_routing_slim_0_rx_aanc_mux_put)
17123};
17124
Sudheer Papothic07b37a2018-05-04 05:56:47 +053017125static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
17126 struct snd_ctl_elem_value *ucontrol)
17127{
17128 ucontrol->value.integer.value[0] = aanc_level;
17129
17130 return 0;
17131}
17132
17133static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
17134 struct snd_ctl_elem_value *ucontrol)
17135{
17136 int ret = 0;
17137
17138 mutex_lock(&routing_lock);
17139 aanc_level = ucontrol->value.integer.value[0];
17140 pr_debug("%s: value: %ld\n",
17141 __func__, ucontrol->value.integer.value[0]);
17142 ret = afe_set_aanc_noise_level(aanc_level);
17143 mutex_unlock(&routing_lock);
17144
17145 return ret;
17146}
17147
17148static const struct snd_kcontrol_new aanc_noise_level[] = {
17149 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
17150 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
17151};
17152
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017153static int msm_routing_get_stereo_to_custom_stereo_control(
17154 struct snd_kcontrol *kcontrol,
17155 struct snd_ctl_elem_value *ucontrol)
17156{
17157 ucontrol->value.integer.value[0] = is_custom_stereo_on;
17158 return 0;
17159}
17160
17161static int msm_routing_put_stereo_to_custom_stereo_control(
17162 struct snd_kcontrol *kcontrol,
17163 struct snd_ctl_elem_value *ucontrol)
17164{
17165 int flag = 0, i = 0, rc = 0, idx = 0;
17166 int be_index = 0, port_id, topo_id;
17167 unsigned int session_id = 0;
17168 uint16_t op_FL_ip_FL_weight = 0;
17169 uint16_t op_FL_ip_FR_weight = 0;
17170 uint16_t op_FR_ip_FL_weight = 0;
17171 uint16_t op_FR_ip_FR_weight = 0;
17172
17173 flag = ucontrol->value.integer.value[0];
17174 pr_debug("%s E flag %d\n", __func__, flag);
17175
17176 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
17177 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
17178 __func__, is_custom_stereo_on, flag);
17179 return 0;
17180 }
17181 is_custom_stereo_on = flag ? true : false;
17182 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
17183 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
17184 port_id = msm_bedais[be_index].port_id;
17185 if (!msm_bedais[be_index].active)
17186 continue;
17187 if ((port_id != SLIMBUS_0_RX) &&
17188 (port_id != RT_PROXY_PORT_001_RX) &&
17189 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
17190 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
17191 continue;
17192
17193 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
17194 MSM_FRONTEND_DAI_MM_SIZE) {
17195 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
17196 LEGACY_PCM_MODE)
17197 goto skip_send_custom_stereo;
17198 session_id =
17199 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
17200 if (is_custom_stereo_on) {
17201 op_FL_ip_FL_weight =
17202 Q14_GAIN_ZERO_POINT_FIVE;
17203 op_FL_ip_FR_weight =
17204 Q14_GAIN_ZERO_POINT_FIVE;
17205 op_FR_ip_FL_weight =
17206 Q14_GAIN_ZERO_POINT_FIVE;
17207 op_FR_ip_FR_weight =
17208 Q14_GAIN_ZERO_POINT_FIVE;
17209 } else {
17210 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
17211 op_FL_ip_FR_weight = 0;
17212 op_FR_ip_FL_weight = 0;
17213 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
17214 }
17215 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17216 unsigned long copp =
17217 session_copp_map[i]
17218 [SESSION_TYPE_RX][be_index];
17219 if (!test_bit(idx, &copp))
17220 goto skip_send_custom_stereo;
17221 topo_id = adm_get_topology_for_port_copp_idx(
17222 msm_bedais[be_index].port_id, idx);
17223 if (topo_id < 0)
17224 pr_debug("%s:Err:custom stereo topo %d",
17225 __func__, topo_id);
17226 pr_debug("idx %d\n", idx);
17227 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17228 rc = msm_ds2_dap_set_custom_stereo_onoff
17229 (msm_bedais[be_index].port_id,
17230 idx, is_custom_stereo_on);
17231 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17232 rc = dolby_dap_set_custom_stereo_onoff(
17233 msm_bedais[be_index].port_id,
17234 idx, is_custom_stereo_on);
17235 else
17236 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17237 (msm_bedais[be_index].port_id,
17238 idx, session_id,
17239 op_FL_ip_FL_weight,
17240 op_FL_ip_FR_weight,
17241 op_FR_ip_FL_weight,
17242 op_FR_ip_FR_weight);
17243 if (rc < 0)
17244skip_send_custom_stereo:
17245 pr_err("%s: err setting custom stereo\n",
17246 __func__);
17247 }
17248
17249 }
17250 }
17251 return 0;
17252}
17253
17254static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17255 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17256 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17257 msm_routing_put_stereo_to_custom_stereo_control),
17258};
17259
17260static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17261 struct snd_ctl_elem_value *ucontrol)
17262{
17263 return 0;
17264}
17265
17266static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17267 struct snd_ctl_elem_value *ucontrol)
17268{
17269 int i = 0, j;
17270 int num_app_types = ucontrol->value.integer.value[i++];
17271
17272 pr_debug("%s\n", __func__);
17273
17274 memset(app_type_cfg, 0, MAX_APP_TYPES*
17275 sizeof(struct msm_pcm_routing_app_type_data));
17276 if (num_app_types > MAX_APP_TYPES) {
17277 pr_err("%s: number of app types exceed the max supported\n",
17278 __func__);
17279 return -EINVAL;
17280 }
17281 for (j = 0; j < num_app_types; j++) {
17282 app_type_cfg[j].app_type =
17283 ucontrol->value.integer.value[i++];
17284 app_type_cfg[j].sample_rate =
17285 ucontrol->value.integer.value[i++];
17286 app_type_cfg[j].bit_width =
17287 ucontrol->value.integer.value[i++];
17288 }
17289
17290 return 0;
17291}
17292
17293static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17294 struct snd_ctl_elem_value *ucontrol)
17295{
17296 int j, fe_id, be_id, port_type;
17297 int ret = 0;
17298 unsigned long copp;
17299 struct msm_pcm_routing_bdai_data *bedai;
17300 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17301 SESSION_TYPE_RX;
17302 int app_type = ucontrol->value.integer.value[1];
17303 int gain = (ucontrol->value.integer.value[2] +
17304 ucontrol->value.integer.value[3])/2;
17305
17306 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17307 MSM_AFE_PORT_TYPE_TX;
17308
17309 mutex_lock(&routing_lock);
17310 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17311 if (is_be_dai_extproc(be_id))
17312 continue;
17313
17314 bedai = &msm_bedais[be_id];
17315 if (afe_get_port_type(bedai->port_id) != port_type)
17316 continue;
17317
17318 if (!bedai->active)
17319 continue;
17320
17321 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17322 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17323 continue;
17324
17325 if (app_type !=
17326 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17327 continue;
17328
17329 copp = session_copp_map[fe_id][dir][be_id];
17330 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17331 if (!test_bit(j, &copp))
17332 continue;
17333 ret |= adm_set_volume(bedai->port_id, j, gain);
17334 }
17335 }
17336 }
17337 mutex_unlock(&routing_lock);
17338 return ret ? -EINVAL : 0;
17339}
17340
17341static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17342 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17343 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17344 msm_routing_put_app_type_cfg_control),
17345 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17346 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17347};
17348
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017349static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17350 struct snd_ctl_elem_value *ucontrol)
17351{
17352 int copp_idx, fe_id, be_id, port_type;
17353 int ret = 0;
17354 unsigned long copp;
17355 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017356 u8 *packed_params = NULL;
17357 struct param_hdr_v3 param_hdr;
17358 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17359 sizeof(uint32_t));
17360
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017361 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17362 SESSION_TYPE_RX;
17363 int app_type = ucontrol->value.integer.value[1];
17364 int module_id = ucontrol->value.integer.value[2];
17365 int instance_id = ucontrol->value.integer.value[3];
17366 int param_id = ucontrol->value.integer.value[4];
17367 int param_value = ucontrol->value.integer.value[5];
17368
17369 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17370 MSM_AFE_PORT_TYPE_TX;
17371 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17372 __func__, app_type, module_id,
17373 instance_id, param_id, param_value);
17374
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017375 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17376 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017377 return -ENOMEM;
17378
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017379 memset(&param_hdr, 0, sizeof(param_hdr));
17380 param_hdr.module_id = module_id;
17381 param_hdr.instance_id = instance_id;
17382 param_hdr.param_id = param_id;
17383 param_hdr.param_size = sizeof(uint32_t);
17384
17385 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017386
17387 mutex_lock(&routing_lock);
17388 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17389 if (is_be_dai_extproc(be_id))
17390 continue;
17391
17392 bedai = &msm_bedais[be_id];
17393 if (afe_get_port_type(bedai->port_id) != port_type)
17394 continue;
17395
17396 if (!bedai->active)
17397 continue;
17398
17399 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17400 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17401 continue;
17402
17403 if (app_type !=
17404 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17405 continue;
17406
17407 copp = session_copp_map[fe_id][dir][be_id];
17408 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17409 copp_idx++) {
17410 if (!test_bit(copp_idx, &copp))
17411 continue;
17412
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017413 ret = q6common_pack_pp_params(packed_params,
17414 &param_hdr,
17415 (u8 *) &param_value,
17416 &packed_param_size);
17417 if (ret) {
17418 pr_err("%s: Failed to pack params, error %d\n",
17419 __func__, ret);
17420 goto done;
17421 }
17422
17423 ret = adm_set_pp_params(bedai->port_id,
17424 copp_idx, NULL,
17425 packed_params,
17426 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017427 if (ret) {
17428 pr_err("%s: Setting param failed with err=%d\n",
17429 __func__, ret);
17430 ret = -EINVAL;
17431 goto done;
17432 }
17433 }
17434 }
17435 }
17436done:
17437 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017438 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017439 return ret;
17440}
17441
17442static const struct snd_kcontrol_new module_cfg_controls[] = {
17443 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17444 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17445};
17446
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017447static int msm_routing_get_lsm_app_type_cfg_control(
17448 struct snd_kcontrol *kcontrol,
17449 struct snd_ctl_elem_value *ucontrol)
17450{
Meng Wangadbca4f2018-10-29 14:30:13 +080017451 int shift = ((struct soc_multi_mixer_control *)
17452 kcontrol->private_value)->shift;
17453 int i = 0, j = 0;
17454
17455 ucontrol->value.integer.value[i] = num_app_cfg_types;
17456
17457 for (j = 0; j < num_app_cfg_types; ++j) {
17458 ucontrol->value.integer.value[++i] =
17459 lsm_app_type_cfg[j].app_type;
17460 ucontrol->value.integer.value[++i] =
17461 lsm_app_type_cfg[j].sample_rate;
17462 ucontrol->value.integer.value[++i] =
17463 lsm_app_type_cfg[j].bit_width;
17464 if (shift == 1)
17465 ucontrol->value.integer.value[++i] =
17466 lsm_app_type_cfg[j].num_out_channels;
17467 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017468 return 0;
17469}
17470
17471static int msm_routing_put_lsm_app_type_cfg_control(
17472 struct snd_kcontrol *kcontrol,
17473 struct snd_ctl_elem_value *ucontrol)
17474{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017475 int shift = ((struct soc_multi_mixer_control *)
17476 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017477 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017478
Meng Wangadbca4f2018-10-29 14:30:13 +080017479 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017480 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017481 sizeof(struct msm_pcm_routing_app_type_data));
17482
Meng Wangadbca4f2018-10-29 14:30:13 +080017483 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017484 pr_err("%s: number of app types exceed the max supported\n",
17485 __func__);
17486 return -EINVAL;
17487 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017488
Meng Wangadbca4f2018-10-29 14:30:13 +080017489 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017490 lsm_app_type_cfg[j].app_type =
17491 ucontrol->value.integer.value[i++];
17492 lsm_app_type_cfg[j].sample_rate =
17493 ucontrol->value.integer.value[i++];
17494 lsm_app_type_cfg[j].bit_width =
17495 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017496 /* Shift of 1 indicates this is V2 mixer control */
17497 if (shift == 1)
17498 lsm_app_type_cfg[j].num_out_channels =
17499 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017500 }
17501
17502 return 0;
17503}
17504
17505static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17506 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17507 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17508 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017509 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17510 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17511 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017512};
17513
17514static int msm_routing_get_use_ds1_or_ds2_control(
17515 struct snd_kcontrol *kcontrol,
17516 struct snd_ctl_elem_value *ucontrol)
17517{
17518 ucontrol->value.integer.value[0] = is_ds2_on;
17519 return 0;
17520}
17521
17522static int msm_routing_put_use_ds1_or_ds2_control(
17523 struct snd_kcontrol *kcontrol,
17524 struct snd_ctl_elem_value *ucontrol)
17525{
17526 is_ds2_on = ucontrol->value.integer.value[0];
17527 return 0;
17528}
17529
17530static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17531 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17532 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17533 msm_routing_put_use_ds1_or_ds2_control),
17534};
17535
17536int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17537 struct snd_ctl_elem_value *ucontrol) {
17538 int rc = 0;
17539 int be_idx = 0;
17540 char *param_value;
17541 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017542 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17543 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017544
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017545 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017546 if (!param_value)
17547 return -ENOMEM;
17548
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017549 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017550 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17551 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17552 break;
17553 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017554 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17555 param_hdr.instance_id = INSTANCE_ID_0;
17556 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17557 param_hdr.param_size = param_size;
17558 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17559 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017560 if (rc) {
17561 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17562 kfree(param_value);
17563 return -EINVAL;
17564 }
17565 update_param_value = (int *)param_value;
17566 ucontrol->value.integer.value[0] = update_param_value[0];
17567
17568 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17569 __func__, update_param_value[0]);
17570 }
17571 kfree(param_value);
17572 return 0;
17573}
17574
17575static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17576 struct snd_ctl_elem_value *ucontrol)
17577{
17578 voc_session_id = ucontrol->value.integer.value[0];
17579
17580 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17581
17582 return 0;
17583}
17584
17585static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17586 struct snd_ctl_elem_value *ucontrol)
17587{
17588 ucontrol->value.integer.value[0] = voc_session_id;
17589
17590 return 0;
17591}
17592
17593static struct snd_kcontrol_new msm_voc_session_controls[] = {
17594 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17595 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17596 msm_voc_session_id_put),
17597};
17598
17599static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17600 struct snd_ctl_elem_info *uinfo)
17601{
17602 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17603 uinfo->count = sizeof(struct sound_focus_param);
17604
17605 return 0;
17606}
17607
17608static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17609 struct snd_ctl_elem_value *ucontrol)
17610{
17611 int ret = 0;
17612 struct sound_focus_param soundFocusData;
17613
17614 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17615 sizeof(struct sound_focus_param));
17616 ret = voc_set_sound_focus(soundFocusData);
17617 if (ret) {
17618 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17619 __func__, ret);
17620
17621 ret = -EINVAL;
17622 }
17623
17624 return ret;
17625}
17626
17627static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17628 struct snd_ctl_elem_value *ucontrol)
17629{
17630 int ret = 0;
17631 struct sound_focus_param soundFocusData;
17632
17633 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17634
17635 ret = voc_get_sound_focus(&soundFocusData);
17636 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017637 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017638 __func__, ret);
17639
17640 ret = -EINVAL;
17641 goto done;
17642 }
17643 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17644 sizeof(struct sound_focus_param));
17645
17646done:
17647 return ret;
17648}
17649
17650static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17651 struct snd_ctl_elem_info *uinfo)
17652{
17653 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17654 uinfo->count = sizeof(struct source_tracking_param);
17655
17656 return 0;
17657}
17658
17659static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17660 struct snd_ctl_elem_value *ucontrol)
17661{
Meng Wang92edfde2018-04-24 12:18:37 +080017662 int ret = 0;
17663 struct source_tracking_param sourceTrackingData;
17664
17665 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17666
17667 ret = voc_get_source_tracking(&sourceTrackingData);
17668 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017669 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080017670 __func__, ret);
17671
17672 ret = -EINVAL;
17673 goto done;
17674 }
17675 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17676 sizeof(struct source_tracking_param));
17677
17678done:
17679 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017680}
17681
17682static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17683 int *copp_idx)
17684{
17685 int i, idx, be_idx;
17686 int ret = 0;
17687 unsigned long copp;
17688
17689 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17690
17691 ret = q6audio_validate_port(port_id);
17692 if (ret < 0) {
17693 pr_err("%s: port validation failed id 0x%x ret %d\n",
17694 __func__, port_id, ret);
17695
17696 ret = -EINVAL;
17697 goto done;
17698 }
17699
17700 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
17701 if (msm_bedais[be_idx].port_id == port_id)
17702 break;
17703 }
17704 if (be_idx >= MSM_BACKEND_DAI_MAX) {
17705 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
17706
17707 ret = -EINVAL;
17708 goto done;
17709 }
17710
17711 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017712 MSM_FRONTEND_DAI_MAX) {
17713 if (!(is_mm_lsm_fe_id(i) &&
17714 route_check_fe_id_adm_support(i)))
17715 continue;
17716
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017717 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17718 copp = session_copp_map[i]
17719 [session_type][be_idx];
17720 if (test_bit(idx, &copp))
17721 break;
17722 }
17723 if (idx >= MAX_COPPS_PER_PORT)
17724 continue;
17725 else
17726 break;
17727 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017728 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017729 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017730
17731 ret = -EINVAL;
17732 goto done;
17733 }
17734 *copp_idx = idx;
17735 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17736
17737done:
17738 return ret;
17739}
17740
17741static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17742 const char *prefix, int *port_id)
17743{
17744 int ret = 0;
17745
17746 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17747
17748 /*
17749 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17750 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17751 * and compare the string with the backend name to derive the port id.
17752 */
17753 if (!strcmp(kcontrol->id.name + strlen(prefix),
17754 "SLIMBUS_0")) {
17755 *port_id = SLIMBUS_0_TX;
17756 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17757 "TERT_MI2S")) {
17758 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17759 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17760 "INT3_MI2S")) {
17761 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017762 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17763 "VA_CDC_DMA_TX_0")) {
17764 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017765 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17766 "TX_CDC_DMA_TX_3")) {
17767 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017768 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17769 "QUIN_TDM_TX_0")) {
17770 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017771 } else {
17772 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17773 __func__, kcontrol->id.name);
17774
17775 ret = -EINVAL;
17776 goto done;
17777 }
17778 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17779 __func__, kcontrol->id.name, *port_id);
17780
17781done:
17782 return ret;
17783}
17784
17785static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17786 struct snd_ctl_elem_value *ucontrol)
17787{
17788 int ret = 0;
17789 struct sound_focus_param soundFocusData;
17790 int port_id, copp_idx;
17791
17792 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17793 "Sound Focus Audio Tx ", &port_id);
17794 if (ret != 0) {
17795 pr_err("%s: Error in deriving port id, err=%d\n",
17796 __func__, ret);
17797
17798 ret = -EINVAL;
17799 goto done;
17800 }
17801
17802 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17803 &copp_idx);
17804 if (ret) {
17805 pr_err("%s: Could not get copp idx for port_id=%d\n",
17806 __func__, port_id);
17807
17808 ret = -EINVAL;
17809 goto done;
17810 }
17811
17812 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17813 sizeof(struct sound_focus_param));
17814
17815 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17816 if (ret) {
17817 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17818 __func__, ret);
17819
17820 ret = -EINVAL;
17821 goto done;
17822 }
17823
17824done:
17825 return ret;
17826}
17827
17828static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17829 struct snd_ctl_elem_value *ucontrol)
17830{
17831 int ret = 0;
17832 struct sound_focus_param soundFocusData;
17833 int port_id, copp_idx;
17834
17835 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17836 "Sound Focus Audio Tx ", &port_id);
17837 if (ret) {
17838 pr_err("%s: Error in deriving port id, err=%d\n",
17839 __func__, ret);
17840
17841 ret = -EINVAL;
17842 goto done;
17843 }
17844
17845 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17846 &copp_idx);
17847 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017848 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017849 __func__, port_id);
17850
17851 ret = -EINVAL;
17852 goto done;
17853 }
17854
17855 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17856 if (ret) {
17857 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17858 __func__, ret);
17859
17860 ret = -EINVAL;
17861 goto done;
17862 }
17863
17864 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17865 sizeof(struct sound_focus_param));
17866
17867done:
17868 return ret;
17869}
17870
17871static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17872 struct snd_ctl_elem_value *ucontrol)
17873{
17874 int ret = 0;
17875 struct source_tracking_param sourceTrackingData;
17876 int port_id, copp_idx;
17877
17878 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17879 "Source Tracking Audio Tx ", &port_id);
17880 if (ret) {
17881 pr_err("%s: Error in deriving port id, err=%d\n",
17882 __func__, ret);
17883
17884 ret = -EINVAL;
17885 goto done;
17886 }
17887
17888 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17889 &copp_idx);
17890 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017891 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017892 __func__, port_id);
17893
17894 ret = -EINVAL;
17895 goto done;
17896 }
17897
17898 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17899 if (ret) {
17900 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17901 __func__, ret);
17902
17903 ret = -EINVAL;
17904 goto done;
17905 }
17906
17907 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17908 sizeof(struct source_tracking_param));
17909
17910done:
17911 return ret;
17912}
17913
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017914static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
17915 struct snd_ctl_elem_info *uinfo)
17916{
17917 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17918 uinfo->count = sizeof(struct doa_tracking_mon_param);
17919
17920 return 0;
17921}
17922
17923static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
17924 struct snd_ctl_elem_value *ucontrol)
17925{
17926 int ret = 0;
17927 struct doa_tracking_mon_param doa_tracking_data;
17928 int port_id, copp_idx;
17929
17930 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
17931 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17932 "Doa Tracking Monitor Listen ", &port_id);
17933 if (ret) {
17934 pr_err("%s: Error in deriving port id, err=%d\n",
17935 __func__, ret);
17936 ret = -EINVAL;
17937 goto done;
17938 }
17939
17940 /*
17941 * If copp id exists for given port id, query adm to get doa data.
17942 * Else query afe for doa tracking params.
17943 * This is to support in cases where LSM directly connects to
17944 * AFE for FFNS.
17945 */
17946 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17947 &copp_idx);
17948 if (!ret)
17949 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
17950 &doa_tracking_data);
17951 else
17952 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
17953
17954 if (ret) {
17955 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
17956 __func__, ret);
17957 ret = -EINVAL;
17958 goto done;
17959 }
17960
17961 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
17962 sizeof(struct doa_tracking_mon_param));
17963done:
17964 return ret;
17965}
17966
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017967static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17968 {
17969 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17970 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17971 .name = "Sound Focus Voice Tx SLIMBUS_0",
17972 .info = msm_sound_focus_info,
17973 .get = msm_voice_sound_focus_get,
17974 .put = msm_voice_sound_focus_put,
17975 },
17976 {
17977 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17978 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17979 .name = "Source Tracking Voice Tx SLIMBUS_0",
17980 .info = msm_source_tracking_info,
17981 .get = msm_voice_source_tracking_get,
17982 },
17983 {
17984 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17985 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17986 .name = "Sound Focus Audio Tx SLIMBUS_0",
17987 .info = msm_sound_focus_info,
17988 .get = msm_audio_sound_focus_get,
17989 .put = msm_audio_sound_focus_put,
17990 },
17991 {
17992 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17993 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17994 .name = "Source Tracking Audio Tx SLIMBUS_0",
17995 .info = msm_source_tracking_info,
17996 .get = msm_audio_source_tracking_get,
17997 },
17998 {
17999 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18000 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18001 .name = "Sound Focus Voice Tx TERT_MI2S",
18002 .info = msm_sound_focus_info,
18003 .get = msm_voice_sound_focus_get,
18004 .put = msm_voice_sound_focus_put,
18005 },
18006 {
18007 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18008 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18009 .name = "Source Tracking Voice Tx TERT_MI2S",
18010 .info = msm_source_tracking_info,
18011 .get = msm_voice_source_tracking_get,
18012 },
18013 {
18014 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18015 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18016 .name = "Sound Focus Audio Tx TERT_MI2S",
18017 .info = msm_sound_focus_info,
18018 .get = msm_audio_sound_focus_get,
18019 .put = msm_audio_sound_focus_put,
18020 },
18021 {
18022 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18023 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18024 .name = "Source Tracking Audio Tx TERT_MI2S",
18025 .info = msm_source_tracking_info,
18026 .get = msm_audio_source_tracking_get,
18027 },
18028 {
18029 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18030 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18031 .name = "Sound Focus Voice Tx INT3_MI2S",
18032 .info = msm_sound_focus_info,
18033 .get = msm_voice_sound_focus_get,
18034 .put = msm_voice_sound_focus_put,
18035 },
18036 {
18037 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18038 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18039 .name = "Source Tracking Voice Tx INT3_MI2S",
18040 .info = msm_source_tracking_info,
18041 .get = msm_voice_source_tracking_get,
18042 },
18043 {
18044 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18045 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18046 .name = "Sound Focus Audio Tx INT3_MI2S",
18047 .info = msm_sound_focus_info,
18048 .get = msm_audio_sound_focus_get,
18049 .put = msm_audio_sound_focus_put,
18050 },
18051 {
18052 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18053 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18054 .name = "Source Tracking Audio Tx INT3_MI2S",
18055 .info = msm_source_tracking_info,
18056 .get = msm_audio_source_tracking_get,
18057 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018058 {
18059 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18060 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18061 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
18062 .info = msm_sound_focus_info,
18063 .get = msm_voice_sound_focus_get,
18064 .put = msm_voice_sound_focus_put,
18065 },
18066 {
18067 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18068 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18069 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
18070 .info = msm_source_tracking_info,
18071 .get = msm_voice_source_tracking_get,
18072 },
18073 {
18074 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18075 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18076 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
18077 .info = msm_sound_focus_info,
18078 .get = msm_audio_sound_focus_get,
18079 .put = msm_audio_sound_focus_put,
18080 },
18081 {
18082 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18083 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18084 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
18085 .info = msm_source_tracking_info,
18086 .get = msm_audio_source_tracking_get,
18087 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018088 {
18089 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18090 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18091 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
18092 .info = msm_sound_focus_info,
18093 .get = msm_voice_sound_focus_get,
18094 .put = msm_voice_sound_focus_put,
18095 },
18096 {
18097 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18098 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18099 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
18100 .info = msm_source_tracking_info,
18101 .get = msm_voice_source_tracking_get,
18102 },
18103 {
18104 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18105 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18106 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
18107 .info = msm_sound_focus_info,
18108 .get = msm_audio_sound_focus_get,
18109 .put = msm_audio_sound_focus_put,
18110 },
18111 {
18112 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18113 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18114 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
18115 .info = msm_source_tracking_info,
18116 .get = msm_audio_source_tracking_get,
18117 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018118 {
18119 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18120 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18121 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
18122 .info = msm_sound_focus_info,
18123 .get = msm_voice_sound_focus_get,
18124 .put = msm_voice_sound_focus_put,
18125 },
18126 {
18127 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18128 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18129 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
18130 .info = msm_source_tracking_info,
18131 .get = msm_voice_source_tracking_get,
18132 },
18133 {
18134 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18135 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18136 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
18137 .info = msm_sound_focus_info,
18138 .get = msm_audio_sound_focus_get,
18139 .put = msm_audio_sound_focus_put,
18140 },
18141 {
18142 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18143 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18144 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
18145 .info = msm_source_tracking_info,
18146 .get = msm_audio_source_tracking_get,
18147 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018148 {
18149 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18150 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18151 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
18152 .info = msm_doa_tracking_mon_info,
18153 .get = msm_doa_tracking_mon_get,
18154 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018155};
18156
18157static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
18158 struct snd_ctl_elem_value *ucontrol)
18159{
18160 int ret = 0;
18161 int item;
18162 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18163
18164 pr_debug("%s item is %d\n", __func__,
18165 ucontrol->value.enumerated.item[0]);
18166 mutex_lock(&routing_lock);
18167 item = ucontrol->value.enumerated.item[0];
18168 if (item < e->items) {
18169 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18170 __func__, e->shift_l, e->values[item]);
18171 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18172 e->values[item] < MSM_BACKEND_DAI_MAX)
18173 /* Enable feedback TX path */
18174 ret = afe_spk_prot_feed_back_cfg(
18175 msm_bedais[e->values[item]].port_id,
18176 msm_bedais[e->shift_l].port_id, 1, 0, 1);
18177 else {
18178 pr_debug("%s values are out of range item %d\n",
18179 __func__, e->values[item]);
18180 /* Disable feedback TX path */
18181 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18182 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
18183 else
18184 ret = -EINVAL;
18185 }
18186 } else {
18187 pr_err("%s item value is out of range item\n", __func__);
18188 ret = -EINVAL;
18189 }
18190 mutex_unlock(&routing_lock);
18191 return ret;
18192}
18193
18194static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
18195 struct snd_ctl_elem_value *ucontrol)
18196{
18197 int ret = 0;
18198 int item;
18199 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18200
18201 pr_debug("%s item is %d\n", __func__,
18202 ucontrol->value.enumerated.item[0]);
18203 mutex_lock(&routing_lock);
18204 item = ucontrol->value.enumerated.item[0];
18205 if (item < e->items) {
18206 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18207 __func__, e->shift_l, e->values[item]);
18208 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18209 e->values[item] < MSM_BACKEND_DAI_MAX)
18210 /* Enable feedback TX path */
18211 ret = afe_spk_prot_feed_back_cfg(
18212 msm_bedais[e->values[item]].port_id,
18213 msm_bedais[e->shift_l].port_id,
18214 1, 1, 1);
18215 else {
18216 pr_debug("%s values are out of range item %d\n",
18217 __func__, e->values[item]);
18218 /* Disable feedback TX path */
18219 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18220 ret = afe_spk_prot_feed_back_cfg(0,
18221 0, 0, 0, 0);
18222 else
18223 ret = -EINVAL;
18224 }
18225 } else {
18226 pr_err("%s item value is out of range item\n", __func__);
18227 ret = -EINVAL;
18228 }
18229 mutex_unlock(&routing_lock);
18230 return ret;
18231}
18232
18233static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
18234 struct snd_ctl_elem_value *ucontrol)
18235{
18236 pr_debug("%s\n", __func__);
18237 return 0;
18238}
18239
18240static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
18241 struct snd_ctl_elem_value *ucontrol)
18242{
18243 pr_debug("%s\n", __func__);
18244 ucontrol->value.enumerated.item[0] = 0;
18245 return 0;
18246}
18247
18248static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
18249 "ZERO", "SLIM4_TX"
18250};
18251
18252static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
18253 "ZERO", "SLIM4_TX"
18254};
18255
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018256static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
18257 "ZERO", "WSA_CDC_DMA_TX_0"
18258};
18259
18260static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
18261 "ZERO", "WSA_CDC_DMA_TX_0"
18262};
18263
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018264static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
18265 "ZERO", "SENARY_TX"
18266};
18267
18268static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
18269 "ZERO", "INT5_MI2S_TX"
18270};
18271
18272static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
18273 "ZERO", "INT5_MI2S_TX"
18274};
18275
18276static const int const slim0_rx_vi_fb_tx_lch_value[] = {
18277 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18278};
18279
18280static const int const slim0_rx_vi_fb_tx_rch_value[] = {
18281 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18282};
18283
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018284static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
18285 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18286};
18287
18288static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
18289 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18290};
18291
18292
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018293static const int const mi2s_rx_vi_fb_tx_value[] = {
18294 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18295};
18296
18297static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
18298 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18299};
18300
18301static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
18302 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18303};
18304
18305static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18306 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18307 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18308 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18309
18310static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18311 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18312 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18313 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18314
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018315static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18316 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18317 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18318 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18319
18320static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18321 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18322 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18323 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18324
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018325static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18326 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18327 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18328 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18329
18330static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18331 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18332 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18333 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18334 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18335
18336static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18337 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18338 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18339 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18340 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18341
18342static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18343 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18344 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18345 spkr_prot_put_vi_lch_port);
18346
18347static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18348 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18349 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18350 spkr_prot_put_vi_rch_port);
18351
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018352static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18353 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18354 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18355 spkr_prot_put_vi_lch_port);
18356
18357static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18358 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18359 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18360 spkr_prot_put_vi_rch_port);
18361
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018362static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18363 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18364 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18365 spkr_prot_put_vi_lch_port);
18366
18367static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18368 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18369 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18370 spkr_prot_put_vi_lch_port);
18371
18372static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18373 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18374 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18375 spkr_prot_put_vi_rch_port);
18376
18377static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18378 /* Frontend AIF */
18379 /* Widget name equals to Front-End DAI name<Need confirmation>,
18380 * Stream name must contains substring of front-end dai name
18381 */
18382 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18383 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18384 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18385 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18386 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18387 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18388 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18389 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18390 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18391 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18392 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18393 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18394 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18395 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18396 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18397 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18398 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018399 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018400 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018401 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18402 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18403 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18404 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18405 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18406 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18407 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18408 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18409 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018410 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018411 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018412 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18413 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18414 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18415 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018416 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018417 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018418 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18419 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018420 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18421 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18422 "VoiceMMode1 Playback", 0, 0, 0, 0),
18423 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18424 "VoiceMMode1 Capture", 0, 0, 0, 0),
18425 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18426 "VoiceMMode2 Playback", 0, 0, 0, 0),
18427 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18428 "VoiceMMode2 Capture", 0, 0, 0, 0),
18429 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18430 0, 0, 0, 0),
18431 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18432 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018433 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18434 0, 0, 0, 0),
18435 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18436 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018437 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18438 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018439 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18440 0, 0, 0, 0),
18441 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18442 0, 0, 0, 0),
18443 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18444 0, 0, 0, 0),
18445 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18446 0, 0, 0, 0),
18447 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18448 0, 0, 0, 0),
18449 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18450 0, 0, 0, 0),
18451 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18452 0, 0, 0, 0),
18453 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18454 0, 0, 0, 0),
18455 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18456 0, 0, 0, 0),
18457 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18458 0, 0, 0, 0),
18459 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18460 0, 0, 0, 0),
18461 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18462 0, 0, 0, 0),
18463 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18464 0, 0, 0, 0),
18465 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18466 0, 0, 0, 0),
18467 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18468 0, 0, 0, 0),
18469 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18470 0, 0, 0, 0),
18471 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18472 0, 0, 0, 0),
18473 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18474 0, 0, 0, 0),
18475 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18476 0, 0, 0, 0),
18477 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18478 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18479 0, 0, 0, 0),
18480 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18481 "INT0 MI2S_RX Hostless Playback",
18482 0, 0, 0, 0),
18483 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18484 "INT4 MI2S_RX Hostless Playback",
18485 0, 0, 0, 0),
18486 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18487 "Primary MI2S_RX Hostless Playback",
18488 0, 0, 0, 0),
18489 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18490 "Secondary MI2S_RX Hostless Playback",
18491 0, 0, 0, 0),
18492 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18493 "Tertiary MI2S_RX Hostless Playback",
18494 0, 0, 0, 0),
18495 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18496 "Quaternary MI2S_RX Hostless Playback",
18497 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018498 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18499 "Quinary MI2S_RX Hostless Playback",
18500 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018501
18502 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18503 0, 0, 0, 0),
18504 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18505 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018506 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18507 0, 0, 0, 0),
18508 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18509 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018510 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18511 0, 0, 0, 0),
18512 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18513 "INT3 MI2S_TX Hostless Capture",
18514 0, 0, 0, 0),
18515 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18516 "Tertiary MI2S_TX Hostless Capture",
18517 0, 0, 0, 0),
18518 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18519 "Secondary MI2S_TX Hostless Capture",
18520 0, 0, 0, 0),
18521 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18522 "Primary MI2S_TX Hostless Capture",
18523 0, 0, 0, 0),
18524 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18525 0, 0, 0, 0),
18526 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18527 0, 0, 0, 0),
18528 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18529 "Quaternary MI2S_TX Hostless Capture",
18530 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018531 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18532 "Quinary MI2S_TX Hostless Capture",
18533 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018534
18535 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18536 "Primary TDM0 Hostless Playback",
18537 0, 0, 0, 0),
18538 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18539 "Primary TDM0 Hostless Capture",
18540 0, 0, 0, 0),
18541 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18542 "Primary TDM1 Hostless Playback",
18543 0, 0, 0, 0),
18544 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18545 "Primary TDM1 Hostless Capture",
18546 0, 0, 0, 0),
18547 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18548 "Primary TDM2 Hostless Playback",
18549 0, 0, 0, 0),
18550 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18551 "Primary TDM2 Hostless Capture",
18552 0, 0, 0, 0),
18553 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18554 "Primary TDM3 Hostless Playback",
18555 0, 0, 0, 0),
18556 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18557 "Primary TDM3 Hostless Capture",
18558 0, 0, 0, 0),
18559 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18560 "Primary TDM4 Hostless Playback",
18561 0, 0, 0, 0),
18562 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18563 "Primary TDM4 Hostless Capture",
18564 0, 0, 0, 0),
18565 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18566 "Primary TDM5 Hostless Playback",
18567 0, 0, 0, 0),
18568 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18569 "Primary TDM5 Hostless Capture",
18570 0, 0, 0, 0),
18571 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18572 "Primary TDM6 Hostless Playback",
18573 0, 0, 0, 0),
18574 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18575 "Primary TDM6 Hostless Capture",
18576 0, 0, 0, 0),
18577 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18578 "Primary TDM7 Hostless Playback",
18579 0, 0, 0, 0),
18580 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18581 "Primary TDM7 Hostless Capture",
18582 0, 0, 0, 0),
18583 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18584 "Secondary TDM0 Hostless Playback",
18585 0, 0, 0, 0),
18586 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18587 "Secondary TDM0 Hostless Capture",
18588 0, 0, 0, 0),
18589 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18590 "Secondary TDM1 Hostless Playback",
18591 0, 0, 0, 0),
18592 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18593 "Secondary TDM1 Hostless Capture",
18594 0, 0, 0, 0),
18595 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18596 "Secondary TDM2 Hostless Playback",
18597 0, 0, 0, 0),
18598 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18599 "Secondary TDM2 Hostless Capture",
18600 0, 0, 0, 0),
18601 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18602 "Secondary TDM3 Hostless Playback",
18603 0, 0, 0, 0),
18604 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18605 "Secondary TDM3 Hostless Capture",
18606 0, 0, 0, 0),
18607 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18608 "Secondary TDM4 Hostless Playback",
18609 0, 0, 0, 0),
18610 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18611 "Secondary TDM4 Hostless Capture",
18612 0, 0, 0, 0),
18613 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18614 "Secondary TDM5 Hostless Playback",
18615 0, 0, 0, 0),
18616 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18617 "Secondary TDM5 Hostless Capture",
18618 0, 0, 0, 0),
18619 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18620 "Secondary TDM6 Hostless Playback",
18621 0, 0, 0, 0),
18622 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18623 "Secondary TDM6 Hostless Capture",
18624 0, 0, 0, 0),
18625 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18626 "Secondary TDM7 Hostless Playback",
18627 0, 0, 0, 0),
18628 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18629 "Secondary TDM7 Hostless Capture",
18630 0, 0, 0, 0),
18631 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18632 "Tertiary TDM0 Hostless Playback",
18633 0, 0, 0, 0),
18634 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18635 "Tertiary TDM0 Hostless Capture",
18636 0, 0, 0, 0),
18637 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18638 "Tertiary TDM1 Hostless Playback",
18639 0, 0, 0, 0),
18640 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18641 "Tertiary TDM1 Hostless Capture",
18642 0, 0, 0, 0),
18643 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18644 "Tertiary TDM2 Hostless Playback",
18645 0, 0, 0, 0),
18646 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18647 "Tertiary TDM2 Hostless Capture",
18648 0, 0, 0, 0),
18649 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18650 "Tertiary TDM3 Hostless Playback",
18651 0, 0, 0, 0),
18652 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18653 "Tertiary TDM3 Hostless Capture",
18654 0, 0, 0, 0),
18655 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18656 "Tertiary TDM4 Hostless Playback",
18657 0, 0, 0, 0),
18658 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18659 "Tertiary TDM4 Hostless Capture",
18660 0, 0, 0, 0),
18661 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
18662 "Tertiary TDM5 Hostless Playback",
18663 0, 0, 0, 0),
18664 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
18665 "Tertiary TDM5 Hostless Capture",
18666 0, 0, 0, 0),
18667 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
18668 "Tertiary TDM6 Hostless Playback",
18669 0, 0, 0, 0),
18670 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
18671 "Tertiary TDM6 Hostless Capture",
18672 0, 0, 0, 0),
18673 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
18674 "Tertiary TDM7 Hostless Playback",
18675 0, 0, 0, 0),
18676 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
18677 "Tertiary TDM7 Hostless Capture",
18678 0, 0, 0, 0),
18679 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
18680 "Quaternary TDM0 Hostless Playback",
18681 0, 0, 0, 0),
18682 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
18683 "Quaternary TDM0 Hostless Capture",
18684 0, 0, 0, 0),
18685 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
18686 "Quaternary TDM1 Hostless Playback",
18687 0, 0, 0, 0),
18688 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
18689 "Quaternary TDM1 Hostless Capture",
18690 0, 0, 0, 0),
18691 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
18692 "Quaternary TDM2 Hostless Playback",
18693 0, 0, 0, 0),
18694 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
18695 "Quaternary TDM2 Hostless Capture",
18696 0, 0, 0, 0),
18697 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
18698 "Quaternary TDM3 Hostless Playback",
18699 0, 0, 0, 0),
18700 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
18701 "Quaternary TDM3 Hostless Capture",
18702 0, 0, 0, 0),
18703 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
18704 "Quaternary TDM4 Hostless Playback",
18705 0, 0, 0, 0),
18706 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
18707 "Quaternary TDM4 Hostless Capture",
18708 0, 0, 0, 0),
18709 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
18710 "Quaternary TDM5 Hostless Playback",
18711 0, 0, 0, 0),
18712 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
18713 "Quaternary TDM5 Hostless Capture",
18714 0, 0, 0, 0),
18715 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
18716 "Quaternary TDM6 Hostless Playback",
18717 0, 0, 0, 0),
18718 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
18719 "Quaternary TDM6 Hostless Capture",
18720 0, 0, 0, 0),
18721 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
18722 "Quaternary TDM7 Hostless Playback",
18723 0, 0, 0, 0),
18724 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
18725 "Quaternary TDM7 Hostless Capture",
18726 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018727 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
18728 "Quinary TDM0 Hostless Playback",
18729 0, 0, 0, 0),
18730 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
18731 "Quinary TDM0 Hostless Capture",
18732 0, 0, 0, 0),
18733 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
18734 "Quinary TDM1 Hostless Playback",
18735 0, 0, 0, 0),
18736 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
18737 "Quinary TDM1 Hostless Capture",
18738 0, 0, 0, 0),
18739 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
18740 "Quinary TDM2 Hostless Playback",
18741 0, 0, 0, 0),
18742 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
18743 "Quinary TDM2 Hostless Capture",
18744 0, 0, 0, 0),
18745 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
18746 "Quinary TDM3 Hostless Playback",
18747 0, 0, 0, 0),
18748 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
18749 "Quinary TDM3 Hostless Capture",
18750 0, 0, 0, 0),
18751 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
18752 "Quinary TDM4 Hostless Playback",
18753 0, 0, 0, 0),
18754 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
18755 "Quinary TDM4 Hostless Capture",
18756 0, 0, 0, 0),
18757 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
18758 "Quinary TDM5 Hostless Playback",
18759 0, 0, 0, 0),
18760 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
18761 "Quinary TDM5 Hostless Capture",
18762 0, 0, 0, 0),
18763 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
18764 "Quinary TDM6 Hostless Playback",
18765 0, 0, 0, 0),
18766 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
18767 "Quinary TDM6 Hostless Capture",
18768 0, 0, 0, 0),
18769 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
18770 "Quinary TDM7 Hostless Playback",
18771 0, 0, 0, 0),
18772 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
18773 "Quinary TDM7 Hostless Capture",
18774 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018775
18776 /* LSM */
18777 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
18778 0, 0, 0, 0),
18779 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
18780 0, 0, 0, 0),
18781 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
18782 0, 0, 0, 0),
18783 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
18784 0, 0, 0, 0),
18785 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
18786 0, 0, 0, 0),
18787 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
18788 0, 0, 0, 0),
18789 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
18790 0, 0, 0, 0),
18791 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
18792 0, 0, 0, 0),
18793 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
18794 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
18795 /* Backend AIF */
18796 /* Stream name equals to backend dai link stream name */
18797 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
18798 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
18799 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020018800 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
18801 0, 0, 0, 0),
18802 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
18803 0, 0, 0, 0),
18804 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
18805 0, 0, 0, 0),
18806 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
18807 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018808 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
18809 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
18810 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
18811 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
18812 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
18813 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018814 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
18815 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018816 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
18817 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
18818 0, 0, 0, 0),
18819 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
18820 0, 0, 0, 0),
18821 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
18822 0, 0, 0, 0),
18823 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
18824 "Secondary MI2S Playback SD1",
18825 0, 0, 0, 0),
18826 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
18827 0, 0, 0, 0),
18828 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
18829 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018830 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
18831 0, 0, 0, 0),
18832 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
18833 0, 0, 0, 0),
18834 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
18835 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018836 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
18837 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018838 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
18839 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018840 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
18841 0, 0, 0, 0),
18842 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
18843 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
18844 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
18845 0, 0, 0, 0),
18846 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
18847 0, 0, 0, 0),
18848 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
18849 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018850 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
18851 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018852 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
18853 0, 0, 0, 0),
18854 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
18855 0, 0, 0, 0),
18856 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
18857 0, 0, 0, 0),
18858 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
18859 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
18860 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
18861 0, 0, 0, 0),
18862 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
18863 0, 0, 0, 0),
18864 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
18865 0, 0, 0, 0),
18866 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
18867 0, 0, 0, 0),
18868 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
18869 0, 0, 0, 0),
18870 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
18871 0, 0, 0, 0),
18872 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
18873 0, 0, 0, 0),
18874 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18875 0, 0, 0, 0),
18876 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18877 0, 0, 0, 0),
18878 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18879 0, 0, 0, 0),
18880 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18881 0, 0, 0, 0),
18882 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18883 0, 0, 0, 0),
18884 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18885 0, 0, 0, 0),
18886 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18887 0, 0, 0, 0),
18888 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18889 0, 0, 0, 0),
18890 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18891 0, 0, 0, 0),
18892 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18893 0, 0, 0, 0),
18894 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18895 0, 0, 0, 0),
18896 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18897 0, 0, 0, 0),
18898 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18899 0, 0, 0, 0),
18900 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18901 0, 0, 0, 0),
18902 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18903 0, 0, 0, 0),
18904 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18905 0, 0, 0, 0),
18906 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18907 0, 0, 0, 0),
18908 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18909 0, 0, 0, 0),
18910 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18911 0, 0, 0, 0),
18912 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18913 0, 0, 0, 0),
18914 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18915 0, 0, 0, 0),
18916 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18917 0, 0, 0, 0),
18918 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18919 0, 0, 0, 0),
18920 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18921 0, 0, 0, 0),
18922 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18923 0, 0, 0, 0),
18924 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18925 0, 0, 0, 0),
18926 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18927 0, 0, 0, 0),
18928 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18929 0, 0, 0, 0),
18930 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18931 0, 0, 0, 0),
18932 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18933 0, 0, 0, 0),
18934 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18935 0, 0, 0, 0),
18936 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18937 0, 0, 0, 0),
18938 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18939 0, 0, 0, 0),
18940 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18941 0, 0, 0, 0),
18942 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18943 0, 0, 0, 0),
18944 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18945 0, 0, 0, 0),
18946 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18947 0, 0, 0, 0),
18948 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18949 0, 0, 0, 0),
18950 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18951 0, 0, 0, 0),
18952 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18953 0, 0, 0, 0),
18954 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18955 0, 0, 0, 0),
18956 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18957 0, 0, 0, 0),
18958 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18959 0, 0, 0, 0),
18960 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18961 0, 0, 0, 0),
18962 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18963 0, 0, 0, 0),
18964 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18965 0, 0, 0, 0),
18966 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18967 0, 0, 0, 0),
18968 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18969 0, 0, 0, 0),
18970 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18971 0, 0, 0, 0),
18972 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18973 0, 0, 0, 0),
18974 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18975 0, 0, 0, 0),
18976 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18977 0, 0, 0, 0),
18978 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18979 0, 0, 0, 0),
18980 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18981 0, 0, 0, 0),
18982 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18983 0, 0, 0, 0),
18984 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18985 0, 0, 0, 0),
18986 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18987 0, 0, 0, 0),
18988 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18989 0, 0, 0, 0),
18990 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18991 0, 0, 0, 0),
18992 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18993 0, 0, 0, 0),
18994 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18995 0, 0, 0, 0),
18996 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18997 0, 0, 0, 0),
18998 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
18999 0, 0, 0, 0),
19000 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
19001 0, 0, 0, 0),
19002 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
19003 0, 0, 0, 0),
19004 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
19005 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019006 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
19007 0, 0, 0, 0),
19008 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
19009 0, 0, 0, 0),
19010 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
19011 0, 0, 0, 0),
19012 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
19013 0, 0, 0, 0),
19014 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
19015 0, 0, 0, 0),
19016 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
19017 0, 0, 0, 0),
19018 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
19019 0, 0, 0, 0),
19020 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
19021 0, 0, 0, 0),
19022 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
19023 0, 0, 0, 0),
19024 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
19025 0, 0, 0, 0),
19026 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
19027 0, 0, 0, 0),
19028 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
19029 0, 0, 0, 0),
19030 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
19031 0, 0, 0, 0),
19032 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
19033 0, 0, 0, 0),
19034 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
19035 0, 0, 0, 0),
19036 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
19037 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019038 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
19039 0, 0, 0, 0),
19040 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
19041 0, 0, 0, 0),
19042 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
19043 0, 0, 0, 0),
19044 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
19045 0, 0, 0, 0),
19046 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
19047 0, 0, 0, 0),
19048 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
19049 0, 0, 0, 0),
19050 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
19051 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019052 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
19053 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019054 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
19055 0, 0, 0, 0),
19056 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
19057 0, 0, 0, 0),
19058 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
19059 0, 0, 0, 0),
19060 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
19061 0, 0, 0, 0),
19062 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
19063 0, 0, 0, 0),
19064 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
19065 0, 0, 0, 0),
19066 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
19067 0, 0, 0, 0),
19068 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
19069 0, 0, 0, 0),
19070 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
19071 0, 0, 0, 0),
19072 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
19073 0, 0, 0, 0),
19074 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
19075 0, 0, 0, 0),
19076 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
19077 0, 0, 0, 0),
19078 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
19079 0, 0, 0, 0),
19080 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
19081 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019082 /* incall */
19083 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
19084 0, 0, 0, 0),
19085 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
19086 0, 0, 0, 0),
19087 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
19088 0, 0, 0, 0),
19089 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
19090 0, 0, 0, 0),
19091 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
19092 0, 0, 0, 0),
19093 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
19094 0, 0, 0, 0),
19095 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
19096 0, 0, 0, 0),
19097 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
19098 0, 0, 0, 0),
19099 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
19100
19101 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
19102 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
19103 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
19104 0, 0, 0, 0),
19105 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
19106 0, 0, 0, 0),
19107 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
19108 0, 0, 0, 0),
19109 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
19110 0, 0, 0, 0),
19111 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
19112 0, 0, 0, 0),
19113 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
19114 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019115 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
19116 0, 0, 0, 0),
19117 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
19118 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019119 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
19120 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
19121 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
19122 0, 0, 0, 0),
19123 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
19124 0, 0, 0, 0),
19125 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
19126 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
19127 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
19128 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
19129 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
19130 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
19131 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
19132 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
19133 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
19134 /* In- call recording */
19135 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
19136 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053019137 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
19138 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019139 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
19140 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
19141
19142 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
19143 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019144 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
19145 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019146 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
19147 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
19148
19149 /* Switch Definitions */
19150 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
19151 &slim_fm_switch_mixer_controls),
19152 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
19153 &slim1_fm_switch_mixer_controls),
19154 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
19155 &slim3_fm_switch_mixer_controls),
19156 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
19157 &slim4_fm_switch_mixer_controls),
19158 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
19159 &slim6_fm_switch_mixer_controls),
19160 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19161 &pcm_rx_switch_mixer_controls),
19162 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19163 &int0_mi2s_rx_switch_mixer_controls),
19164 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19165 &int4_mi2s_rx_switch_mixer_controls),
19166 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19167 &pri_mi2s_rx_switch_mixer_controls),
19168 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19169 &sec_mi2s_rx_switch_mixer_controls),
19170 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19171 &tert_mi2s_rx_switch_mixer_controls),
19172 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19173 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053019174 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19175 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019176 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19177 &hfp_pri_aux_switch_mixer_controls),
19178 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19179 &hfp_aux_switch_mixer_controls),
19180 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
19181 &hfp_int_switch_mixer_controls),
19182 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19183 &hfp_slim7_switch_mixer_controls),
19184 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
19185 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080019186 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19187 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019188 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019189 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019190 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019191 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019192
19193 /* Mixer definitions */
19194 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19195 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
19196 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19197 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
19198 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19199 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
19200 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19201 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
19202 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19203 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
19204 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19205 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019206 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19207 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019208 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
19209 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
19210 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
19211 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019212 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
19213 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020019214 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19215 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
19216 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19217 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019218 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19219 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
19220 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19221 quaternary_mi2s_rx_mixer_controls,
19222 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
19223 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19224 tertiary_mi2s_rx_mixer_controls,
19225 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
19226 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19227 secondary_mi2s_rx_mixer_controls,
19228 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
19229 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19230 secondary_mi2s_rx2_mixer_controls,
19231 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
19232 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19233 primary_mi2s_rx_mixer_controls,
19234 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
19235 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19236 int0_mi2s_rx_mixer_controls,
19237 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
19238 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19239 int4_mi2s_rx_mixer_controls,
19240 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
19241 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19242 quinary_mi2s_rx_mixer_controls,
19243 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
19244 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19245 pri_tdm_rx_0_mixer_controls,
19246 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
19247 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19248 pri_tdm_rx_1_mixer_controls,
19249 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
19250 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19251 pri_tdm_rx_2_mixer_controls,
19252 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
19253 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19254 pri_tdm_rx_3_mixer_controls,
19255 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
19256 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19257 pri_tdm_tx_0_mixer_controls,
19258 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
19259 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19260 sec_tdm_rx_0_mixer_controls,
19261 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
19262 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19263 sec_tdm_rx_1_mixer_controls,
19264 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
19265 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19266 sec_tdm_rx_2_mixer_controls,
19267 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
19268 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19269 sec_tdm_rx_3_mixer_controls,
19270 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
19271 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19272 sec_tdm_tx_0_mixer_controls,
19273 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
19274 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19275 tert_tdm_rx_0_mixer_controls,
19276 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
19277 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19278 tert_tdm_tx_0_mixer_controls,
19279 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
19280 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19281 tert_tdm_rx_1_mixer_controls,
19282 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19283 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19284 tert_tdm_rx_2_mixer_controls,
19285 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19286 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19287 tert_tdm_rx_3_mixer_controls,
19288 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19289 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19290 tert_tdm_rx_4_mixer_controls,
19291 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19292 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19293 quat_tdm_rx_0_mixer_controls,
19294 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19295 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19296 quat_tdm_tx_0_mixer_controls,
19297 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19298 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19299 quat_tdm_rx_1_mixer_controls,
19300 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19301 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19302 quat_tdm_rx_2_mixer_controls,
19303 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19304 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19305 quat_tdm_rx_3_mixer_controls,
19306 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019307 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19308 quin_tdm_rx_0_mixer_controls,
19309 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19310 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19311 quin_tdm_tx_0_mixer_controls,
19312 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19313 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19314 quin_tdm_rx_1_mixer_controls,
19315 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19316 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19317 quin_tdm_rx_2_mixer_controls,
19318 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19319 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19320 quin_tdm_rx_3_mixer_controls,
19321 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019322 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19323 wsa_cdc_dma_rx_0_mixer_controls,
19324 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19325 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19326 wsa_cdc_dma_rx_1_mixer_controls,
19327 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019328 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19329 rx_cdc_dma_rx_0_mixer_controls,
19330 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19331 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19332 rx_cdc_dma_rx_1_mixer_controls,
19333 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19334 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19335 rx_cdc_dma_rx_2_mixer_controls,
19336 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19337 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19338 rx_cdc_dma_rx_3_mixer_controls,
19339 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19340 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19341 rx_cdc_dma_rx_4_mixer_controls,
19342 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19343 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19344 rx_cdc_dma_rx_5_mixer_controls,
19345 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19346 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19347 rx_cdc_dma_rx_6_mixer_controls,
19348 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19349 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19350 rx_cdc_dma_rx_7_mixer_controls,
19351 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019352 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19353 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19354 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19355 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19356 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19357 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19358 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19359 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19360 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19361 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19362 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19363 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19364 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19365 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19366 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19367 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019368 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19369 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019370 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19371 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019372 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19373 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19374 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19375 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19376 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19377 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19378 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19379 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019380 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19381 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019382 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19383 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019384 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19385 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19386 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19387 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019388 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19389 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19390 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19391 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19392 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19393 tert_auxpcm_rx_mixer_controls,
19394 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19395 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19396 quat_auxpcm_rx_mixer_controls,
19397 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019398 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19399 quin_auxpcm_rx_mixer_controls,
19400 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019401 /* incall */
19402 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19403 incall_music_delivery_mixer_controls,
19404 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19405 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19406 incall_music2_delivery_mixer_controls,
19407 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19408 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19409 slimbus_4_rx_mixer_controls,
19410 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19411 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19412 slimbus_6_rx_mixer_controls,
19413 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19414 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19415 usb_audio_rx_mixer_controls,
19416 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19417 /* Voice Mixer */
19418 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19419 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19420 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19421 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19422 SND_SOC_NOPM, 0, 0,
19423 sec_i2s_rx_voice_mixer_controls,
19424 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19425 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19426 SND_SOC_NOPM, 0, 0,
19427 sec_mi2s_rx_voice_mixer_controls,
19428 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19429 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19430 SND_SOC_NOPM, 0, 0,
19431 slimbus_rx_voice_mixer_controls,
19432 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19433 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19434 SND_SOC_NOPM, 0, 0,
19435 bt_sco_rx_voice_mixer_controls,
19436 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19437 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19438 SND_SOC_NOPM, 0, 0,
19439 afe_pcm_rx_voice_mixer_controls,
19440 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19441 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19442 SND_SOC_NOPM, 0, 0,
19443 aux_pcm_rx_voice_mixer_controls,
19444 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19445 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19446 SND_SOC_NOPM, 0, 0,
19447 sec_aux_pcm_rx_voice_mixer_controls,
19448 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19449 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19450 SND_SOC_NOPM, 0, 0,
19451 tert_aux_pcm_rx_voice_mixer_controls,
19452 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19453 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19454 SND_SOC_NOPM, 0, 0,
19455 quat_aux_pcm_rx_voice_mixer_controls,
19456 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019457 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19458 SND_SOC_NOPM, 0, 0,
19459 quin_aux_pcm_rx_voice_mixer_controls,
19460 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019461 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19462 SND_SOC_NOPM, 0, 0,
19463 hdmi_rx_voice_mixer_controls,
19464 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19465 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19466 SND_SOC_NOPM, 0, 0,
19467 mi2s_rx_voice_mixer_controls,
19468 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19469 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19470 SND_SOC_NOPM, 0, 0,
19471 pri_mi2s_rx_voice_mixer_controls,
19472 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19473 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19474 SND_SOC_NOPM, 0, 0,
19475 int0_mi2s_rx_voice_mixer_controls,
19476 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19477 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19478 SND_SOC_NOPM, 0, 0,
19479 int4_mi2s_rx_voice_mixer_controls,
19480 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19481 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19482 SND_SOC_NOPM, 0, 0,
19483 tert_mi2s_rx_voice_mixer_controls,
19484 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19485 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19486 SND_SOC_NOPM, 0, 0,
19487 quat_mi2s_rx_voice_mixer_controls,
19488 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19489 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19490 SND_SOC_NOPM, 0, 0,
19491 quin_mi2s_rx_voice_mixer_controls,
19492 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19493 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19494 SND_SOC_NOPM, 0, 0,
19495 quat_tdm_rx_2_voice_mixer_controls,
19496 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019497 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19498 SND_SOC_NOPM, 0, 0,
19499 wsa_cdc_dma_rx_0_voice_mixer_controls,
19500 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19501 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19502 SND_SOC_NOPM, 0, 0,
19503 rx_cdc_dma_rx_0_voice_mixer_controls,
19504 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019505 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19506 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19507 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019508 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19509 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19510 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19511 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19512 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19513 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19514 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19515 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19516 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19517 int_bt_a2dp_rx_mixer_controls,
19518 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19519 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19520 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19521 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19522 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19523 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19524 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19525 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19526 tx_voice2_stub_mixer_controls,
19527 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19528 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19529 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19530 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19531 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19532 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19533 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19534 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19535 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19536 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19537 SND_SOC_NOPM, 0, 0,
19538 slimbus_6_rx_voice_mixer_controls,
19539 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19540 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19541 slimbus_7_rx_voice_mixer_controls,
19542 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19543 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19544 slimbus_8_rx_voice_mixer_controls,
19545 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19546 /* port mixer */
19547 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19548 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19549 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19550 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19551 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19552 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19553 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19554 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19555 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19556 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19557 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19558 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19559 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19560 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19561 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019562 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19563 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19564 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019565 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19566 sbus_1_rx_port_mixer_controls,
19567 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19568 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19569 bt_sco_rx_port_mixer_controls,
19570 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19571 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19572 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19573 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19574 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19575 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19576 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19577 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19578 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19579 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019580 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019581 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19582 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019583 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19584 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19585 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19586 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19587 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19588 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19589 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19590 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19591 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19592 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19593 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19594 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19595 primary_mi2s_rx_port_mixer_controls,
19596 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19597 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19598 sec_mi2s_rx_port_mixer_controls,
19599 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19600 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19601 tert_mi2s_rx_port_mixer_controls,
19602 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19603 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19604 quat_mi2s_rx_port_mixer_controls,
19605 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019606 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19607 quin_mi2s_rx_port_mixer_controls,
19608 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019609 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19610 pri_tdm_rx_0_port_mixer_controls,
19611 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19612 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19613 pri_tdm_rx_1_port_mixer_controls,
19614 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19615 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19616 pri_tdm_rx_2_port_mixer_controls,
19617 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19618 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19619 pri_tdm_rx_3_port_mixer_controls,
19620 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19621 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19622 sec_tdm_rx_0_port_mixer_controls,
19623 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19624 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19625 sec_tdm_rx_1_port_mixer_controls,
19626 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19627 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19628 sec_tdm_rx_2_port_mixer_controls,
19629 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19630 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19631 sec_tdm_rx_3_port_mixer_controls,
19632 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070019633 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
19634 sec_tdm_rx_7_port_mixer_controls,
19635 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019636 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19637 tert_tdm_rx_0_port_mixer_controls,
19638 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19639 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19640 tert_tdm_rx_1_port_mixer_controls,
19641 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19642 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19643 tert_tdm_rx_2_port_mixer_controls,
19644 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19645 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19646 tert_tdm_rx_3_port_mixer_controls,
19647 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19648 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19649 quat_tdm_rx_0_port_mixer_controls,
19650 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19651 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19652 quat_tdm_rx_1_port_mixer_controls,
19653 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19654 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19655 quat_tdm_rx_2_port_mixer_controls,
19656 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19657 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19658 quat_tdm_rx_3_port_mixer_controls,
19659 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019660 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19661 quin_tdm_rx_0_port_mixer_controls,
19662 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
19663 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19664 quin_tdm_rx_1_port_mixer_controls,
19665 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
19666 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19667 quin_tdm_rx_2_port_mixer_controls,
19668 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
19669 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19670 quin_tdm_rx_3_port_mixer_controls,
19671 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019672 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19673 int0_mi2s_rx_port_mixer_controls,
19674 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
19675 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19676 int4_mi2s_rx_port_mixer_controls,
19677 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019678 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19679 wsa_cdc_dma_rx_0_port_mixer_controls,
19680 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
19681 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19682 rx_cdc_dma_rx_0_port_mixer_controls,
19683 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019684 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
19685 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
19686 ARRAY_SIZE(tx_qchat_mixer_controls)),
19687 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
19688 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
19689 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
19690 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
19691 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
19692 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080019693 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
19694 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
19695 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019696 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
19697 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
19698 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019699 /* lsm mixer definitions */
19700 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
19701 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
19702 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
19703 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
19704 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
19705 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
19706 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
19707 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
19708 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
19709 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
19710 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
19711 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
19712 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
19713 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
19714 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
19715 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
19716 /* Virtual Pins to force backends ON atm */
19717 SND_SOC_DAPM_OUTPUT("BE_OUT"),
19718 SND_SOC_DAPM_INPUT("BE_IN"),
19719
19720 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19721 &slim0_rx_vi_fb_lch_mux),
19722 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19723 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019724 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19725 &wsa_rx_0_vi_fb_lch_mux),
19726 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19727 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019728 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
19729 &mi2s_rx_vi_fb_mux),
19730 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
19731 &int4_mi2s_rx_vi_fb_mono_ch_mux),
19732 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
19733 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
19734
19735 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
19736 &voc_ext_ec_mux),
19737 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
19738 &ext_ec_ref_mux_ul1),
19739 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
19740 &ext_ec_ref_mux_ul2),
19741 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
19742 &ext_ec_ref_mux_ul3),
19743 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
19744 &ext_ec_ref_mux_ul4),
19745 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
19746 &ext_ec_ref_mux_ul5),
19747 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
19748 &ext_ec_ref_mux_ul6),
19749 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
19750 &ext_ec_ref_mux_ul8),
19751 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
19752 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019753 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
19754 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019755 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
19756 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019757 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
19758 &ext_ec_ref_mux_ul17),
19759 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
19760 &ext_ec_ref_mux_ul18),
19761 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
19762 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080019763 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
19764 &ext_ec_ref_mux_ul28),
19765 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
19766 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019767};
19768
19769static const struct snd_soc_dapm_route intercon[] = {
19770 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19771 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19772 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19773 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19774 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19775 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19776 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19777 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19778 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19779 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19780 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19781 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19782 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19783 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19784 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19785 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019786 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019787 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
19788
19789 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19790 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19791 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19792 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19793 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19794 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19795 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19796 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19797 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19798 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19799 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19800 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19801 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19802 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19803 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19804 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019805 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019806 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
19807
19808 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19809 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19810 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19811 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19812 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19813 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19814 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19815 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19816 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19817 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19818 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19819 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19820 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19821 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19822 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19823 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019824 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019825 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
19826
19827 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19828 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19829 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19830 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19831 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19832 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19833 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19834 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19835 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19836 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19837 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19838 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19839 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19840 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19841 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19842 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019843 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019844 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
19845
19846 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19847 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19848 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19849 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19850 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19851 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19852 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19853 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19854 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19855 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19856 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19857 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19858 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19859 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19860 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19861 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019862 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019863 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
19864
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019865 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19866 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19867 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19868 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19869 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19870 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19871 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19872 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19873 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19874 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19875 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19876 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19877 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19878 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19879 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19880 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019881 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019882 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
19883
19884 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19885 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19886 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19887 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19888 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19889 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19890 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19891 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19892 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19893 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19894 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19895 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19896 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19897 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19898 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19899 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019900 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019901 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19902
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019903 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19904 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19905 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19906 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19907 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19908 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19909 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19910 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19911 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19912 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19913 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19914 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19915 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19916 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19917 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19918 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019919 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019920 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19921
19922 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19923 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19924 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19925 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19926 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19927 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19928 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19929 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19930 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19931 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19932 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19933 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19934 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19935 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19936 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19937 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019938 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019939 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19940
19941 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19942 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19943 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19944 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19945 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19946 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19947 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19948 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19949 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19950 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19951 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19952 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19953 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19954 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19955 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19956 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019957 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019958 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19959
19960 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19961 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19962 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19963 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19964 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19965 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19966 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19967 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19968 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19969 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19970 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19971 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19972 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19973 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19974 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19975 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019976 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019977 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19978
19979 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19980 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19981 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19982 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19983 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19984 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19985 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19986 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19987 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19988 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19989 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19990 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19991 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19992 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19993 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19994 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019995 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019996 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19997
19998 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19999 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
20000 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
20001 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
20002 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
20003 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
20004 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
20005 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
20006 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
20007 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
20008 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
20009 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
20010 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
20011 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
20012 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
20013 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020014 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020015 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
20016
20017 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
20018 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
20019 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
20020 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
20021 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
20022 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
20023 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
20024 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
20025 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
20026 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
20027 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
20028 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
20029 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
20030 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
20031 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
20032 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020033 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020034 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
20035
20036 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
20037 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
20038 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
20039 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
20040 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
20041 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
20042 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
20043 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
20044 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
20045 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
20046 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
20047 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
20048 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
20049 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
20050 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
20051 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020052 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020053 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
20054
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020055 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
20056 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
20057 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
20058 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
20059 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
20060 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
20061 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
20062 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
20063 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
20064 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
20065 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
20066 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
20067 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
20068 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
20069 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
20070 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020071 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020072 {"HDMI", NULL, "HDMI Mixer"},
20073
20074 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
20075 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
20076 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
20077 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
20078 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
20079 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
20080 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
20081 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
20082 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
20083 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
20084 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
20085 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
20086 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
20087 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
20088 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
20089 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020090 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020091 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
20092
Karthikeyan Mani57550082018-05-03 18:43:58 -070020093 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
20094 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
20095 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
20096 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
20097 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
20098 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
20099 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
20100 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
20101 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
20102 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
20103 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
20104 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
20105 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
20106 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
20107 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
20108 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020109 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070020110 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
20111
Ralf Herzc8701f72018-06-20 11:37:35 +020020112 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20113 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20114 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20115 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20116 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20117 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20118 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20119 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20120 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20121 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20122 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20123 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20124 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20125 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20126 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20127 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020128 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020129 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
20130
20131 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20132 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20133 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20134 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20135 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20136 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20137 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20138 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20139 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20140 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20141 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20142 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20143 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20144 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20145 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20146 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020147 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020148 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020149
20150 /* incall */
20151 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
20152 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
20153 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
20154 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
20155 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
20156 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20157 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20158 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20159 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20160 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
20161 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20162 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20163 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20164 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20165 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
20166
20167 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20168 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20169 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20170 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20171 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20172 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20173 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20174 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20175 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20176 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20177 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20178 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20179 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20180 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20181 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20182 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020183 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020184 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
20185
20186 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20187 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20188 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20189 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20190 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20191 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20192 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20193 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20194 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20195 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20196 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20197 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20198 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20199 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20200 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20201 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020202 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020203 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
20204
Surendar Karka3ef3d812018-09-28 18:52:35 +053020205 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20206 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20207 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20208 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20209 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20210 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20211 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20212 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20213 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20214 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20215 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20216 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20217 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20218 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20219 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20220 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20221 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
20222 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
20223
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020224 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20225 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20226 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20227 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20228 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20229 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20230 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20231 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20232 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20233 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20234 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20235 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20236 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20237 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20238 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20239 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020240 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020241 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
20242
20243 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20244 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20245 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20246 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20247 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20248 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20249 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
20250 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20251 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20252 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020253 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020254 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20255 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020256 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020257 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20258 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20259 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20260 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020261 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20262 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020263 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20264 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20265 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20266 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20267 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20268 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020269 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20270 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020271 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020272 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020273 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20274 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20275 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20276 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20277 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20278 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020279 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020280 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20281 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20282 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020283 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20284 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20285 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020286 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020287 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020288 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20289 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020290 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020291 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020292 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020293 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20294 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20295
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020296 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20297 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20298 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20299 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20300 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20301 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20302 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20303 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20304 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20305 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20306 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20307 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20308 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20309 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20310 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20311 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020312 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020313 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20314
20315 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20316 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20317 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20318 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20319 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20320 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20321 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20322 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20323 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20324 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20325 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20326 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20327 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20328 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20329 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020330 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020331 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20332
20333 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20334 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20335 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20336 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20337 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20338 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20339 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20340 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20341 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20342 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20343 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20344 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20345 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20346 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020347 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020348 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20349
20350 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20351 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20352 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20353 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20354 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20355 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20356 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20357 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20358 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20359 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20360 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20361 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20362 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20363 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020364 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020365 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20366
20367 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20368 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20369
20370 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20371 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20372
20373 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20374 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20375 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20376 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20377 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20378 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20379 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20380 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20381 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20382 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20383 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20384 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20385 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20386 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20387 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020388 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020389 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20390
20391 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20392 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20393 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20394 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20395 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20396 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20397 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20398 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20399 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20400 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20401 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20402 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20403 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20404 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20405 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20406 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20407
20408 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20409 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20410 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20411 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20412 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20413 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20414 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20415 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20416 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20417 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20418 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20419 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20420 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20421 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20422 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20423 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20424
20425 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20426 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20427 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20428 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20429 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20430 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20431 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20432 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20433 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20434 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20435 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20436 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20437 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20438 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20439 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20440 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20441 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20442 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20443
20444 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20445 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20446 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20447 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20448 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20449 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20450 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20451 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20452 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20453 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20454 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20455 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20456 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20457 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20458 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20459 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020460 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020461 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20462
20463 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20464 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20465 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20466 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20467 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20468 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20469 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20470 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20471 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20472 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20473 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20474 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20475 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20476 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20477 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20478 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020479 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020480 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20481
20482 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20483 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20484 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20485 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20486 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20487 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20488 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20489 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20490 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20491 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20492 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20493 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20494 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20495 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20496 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20497 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020498 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020499 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20500
20501 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20502 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20503 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20504 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20505 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20506 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20507 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20508 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20509 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20510 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20511 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20512 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20513 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20514 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20515 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20516 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020517 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020518 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20519
20520 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20521 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20522 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20523 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20524 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20525 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20526 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20527 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20528 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20529 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20530 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20531 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20532 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20533 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20534 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20535 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20536 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20537
20538 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20539 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20540 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20541 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20542 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20543 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20544 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20545 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20546 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20547 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20548 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20549 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20550 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20551 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20552 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20553 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020554 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020555 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20556
20557 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20558 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20559 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20560 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20561 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20562 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20563 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20564 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20565 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20566 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20567 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20568 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20569 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20570 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20571 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20572 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020573 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020574 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20575
20576 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20577 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20578 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20579 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20580 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20581 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20582 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20583 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20584 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20585 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20586 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20587 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20588 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20589 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20590 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20591 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020592 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020593 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20594
20595 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20596 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20597 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20598 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20599 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20600 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20601 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20602 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20603 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20604 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20605 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20606 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20607 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20608 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20609 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20610 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020611 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020612 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20613
20614 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20615 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20616 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20617 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20618 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20619 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20620 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20621 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20622 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20623 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20624 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20625 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20626 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20627 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20628 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20629 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20630 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20631
20632 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20633 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20634 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20635 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20636 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20637 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20638 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20639 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20640 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20641 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20642 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20643 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20644 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20645 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20646 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20647 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020648 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020649 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
20650
20651 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20652 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20653 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20654 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20655 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20656 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20657 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20658 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20659 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20660 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20661 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20662 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20663 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20664 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20665 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20666 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20667 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
20668
20669 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20670 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20671 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20672 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20673 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20674 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20675 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20676 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20677 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20678 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20679 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20680 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20681 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20682 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20683 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20684 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020685 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020686 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
20687
20688 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20689 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20690 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20691 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20692 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20693 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20694 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20695 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20696 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20697 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20698 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20699 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20700 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20701 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20702 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20703 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020704 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020705 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
20706
20707 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20708 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20709 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20710 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20711 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20712 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20713 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20714 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20715 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20716 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20717 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20718 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20719 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20720 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20721 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20722 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020723 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020724 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
20725
20726 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20727 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20728 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20729 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20730 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20731 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20732 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20733 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20734 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20735 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20736 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20737 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20738 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20739 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20740 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20741 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020742 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020743 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
20744
20745 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20746 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20747 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20748 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20749 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20750 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20751 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20752 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20753 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20754 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20755 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20756 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20757 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20758 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20759 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20760 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20761 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020762 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020763 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
20764
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020765 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20766 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20767 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20768 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20769 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20770 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20771 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20772 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20773 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20774 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20775 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20776 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20777 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20778 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20779 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20780 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20781 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
20782
20783 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20784 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20785 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20786 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20787 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20788 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20789 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20790 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20791 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20792 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20793 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20794 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20795 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20796 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20797 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20798 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20799 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020800 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020801 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
20802
20803 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20804 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20805 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20806 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20807 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20808 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20809 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20810 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20811 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20812 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20813 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20814 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20815 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20816 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20817 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20818 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20819 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020820 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020821 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
20822
20823 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20824 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20825 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20826 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20827 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20828 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20829 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20830 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20831 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20832 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20833 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20834 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20835 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20836 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20837 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20838 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20839 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020840 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020841 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
20842
Rohit Kumara5077932017-09-10 22:05:05 +053020843 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20844 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20845 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20846 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20847 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20848 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20849 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20850 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20851 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20852 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20853 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20854 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20855 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20856 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20857 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20858 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20859 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020860 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020861 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
20862
20863 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20864 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20865 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20866 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20867 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20868 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20869 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20870 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20871 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20872 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20873 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20874 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20875 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20876 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20877 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20878 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20879 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
20880
20881 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20882 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20883 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20884 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20885 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20886 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20887 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20888 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20889 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20890 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20891 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20892 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20893 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20894 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20895 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20896 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20897 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020898 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020899 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
20900
20901 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20902 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20903 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20904 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20905 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20906 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20907 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20908 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20909 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20910 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20911 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20912 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20913 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20914 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20915 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20916 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20917 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020918 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020919 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
20920
20921 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20922 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20923 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20924 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20925 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20926 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20927 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20928 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20929 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20930 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20931 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20932 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20933 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20934 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20935 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20936 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20937 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020938 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020939 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
20940
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020941 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
20942 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
20943 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
20944 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
20945 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020946 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020947 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020948 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20949 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20950 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20951 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20952 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20953 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20954 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20955 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20956 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20957 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20958 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20959 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20960 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20961 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20962 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020963 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020964 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20965 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20966 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020967 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020968 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20969 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020970 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20971 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20972 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020973 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020974 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20975 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20976 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020977 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020978 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020979 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20980 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20981 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020982 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20983 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20984 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20985 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20986 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20987 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20988 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20989 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20990 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20991 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20992 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020993 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020994 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20995 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20996 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020997 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020998 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020999 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21000 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21001 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021002 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021003 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021004 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21005 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21006 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21007 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21008 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021009 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21010 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21011 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21012 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021013 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021014
21015 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21016 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21017 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21018 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21019 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21020 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21021 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21022 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21023 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21024 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21025 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21026 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21027 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21028 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21029 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21030 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021031 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021032 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21033 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21034 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21035 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021036 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21037 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21038 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21039 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21040 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021041 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021042 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21043 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21044 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21045 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21046 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21047 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021048 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21049 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021050
21051 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21052 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21053 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21054 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21055 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21056 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21057 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21058 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21059 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21060 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21061 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21062 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21063 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21064 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21065 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21066 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021067 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021068 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21069 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21070 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21071 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021072 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21073 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21074 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21075 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21076 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021077 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021078 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21079 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21080 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21081 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21082 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21083 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021084 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21085 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021086
21087 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21088 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21089 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21090 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21091 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21092 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21093 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21094 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21095 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21096 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21097 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21098 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21099 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21100 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21101 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21102 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021103 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021104 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21105 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21106 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21107 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021108 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21109 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21110 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21111 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21112 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021113 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021114 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21115 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21116 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21117 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21118 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21119 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021120 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21121 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021122
21123 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21124 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21125 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21126 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21127 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21128 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21129 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21130 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21131 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21132 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21133 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21134 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21135 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21136 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21137 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21138 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021139 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021140 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21141 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21142 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21143 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021144 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21145 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21146 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21147 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21148 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021149 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021150 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21151 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21152 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21153 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21154 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21155 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021156 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21157 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021158
21159 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21160 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21161 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21162 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21163 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21164 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21165 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21166 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21167 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21168 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21169 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21170 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21171 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21172 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21173 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21174 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021175 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021176 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21177 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21178 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21179 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021180 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21181 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21182 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21183 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21184 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021185 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021186 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21187 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21188 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21189 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21190 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21191 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021192 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21193 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021194
21195 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21196 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21197 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21198 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21199 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21200 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21201 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21202 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21203 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21204 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21205 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21206 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21207 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21208 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21209 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21210 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021211 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021212 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21213 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21214 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21215 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021216 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21217 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21218 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21219 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21220 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021221 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021222 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21223 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21224 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21225 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21226 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21227 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021228 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21229 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021230
21231 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21232 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21233 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21234 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21235 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21236 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21237 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21238 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21239 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21240 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21241 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21242 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21243 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21244 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21245 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21246 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021247 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021248 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21249 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21250 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21251 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021252 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21253 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21254 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21255 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21256 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021257 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021258 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21259 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21260 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21261 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21262 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21263 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021264 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21265 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021266
21267 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21268 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21269 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21270 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21271 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21272 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21273 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21274 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021275 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21276 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21277 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21278 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021279 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21280 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21281 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21282 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21283 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021284 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021285 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21286 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21287 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21288 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21289 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21290 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021291 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21292 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021293 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021294
Laxminath Kasam38070be2017-08-17 18:21:59 +053021295 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21296 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21297 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21298 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21299 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21300 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21301 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21302 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021303 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21304 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21305 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21306 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21307 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21308 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021309 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021310
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021311 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21312 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21313 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21314 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021315 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021316 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21317 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21318 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21319 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21320 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21321 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21322 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21323 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21324 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21325 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21326 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21327 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21328 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21329 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21330 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21331 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021332 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21333 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21334 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21335 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021336 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21337 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21338 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21339 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21340 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021341 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021342 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21343 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21344 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21345 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21346 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21347 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021348 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21349 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021350 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021351
Derek Chen07c6d1c2018-07-05 10:39:25 -070021352 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21353 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21354 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21355 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21356 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21357 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21358 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21359 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21360 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21361 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21362 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21363 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21364 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21365 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21366 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21367 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21368 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21369 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21370 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21371 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21372 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21373 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021374 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21375 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21376 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21377 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21378 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021379 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021380 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21381 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21382 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21383 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21384 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21385 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21386 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21387 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021388 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021389
Surendar Karkac1cde372018-08-14 18:56:24 +053021390 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21391 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21392 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021393 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021394 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21395 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21396 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21397 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21398 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21399 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21400 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021401 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021402
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021403 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21404 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21405 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21406 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21407 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21408 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021409 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021410
Asish Bhattacharya34504582017-08-08 12:55:01 +053021411 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21412 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21413 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21414 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21415 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21416 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21417 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21418 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21419 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21420 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21421 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21422 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21423 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21424 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21425 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21426 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21427 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021428 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21429 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21430 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21431 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21432 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021433 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021434 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21435 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21436 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21437 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21438 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21439 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021440 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21441 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021442 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021443
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021444 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21445 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21446 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21447 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21448 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21449 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021450 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021451
21452 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21453 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21454 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21455 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21456 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21457 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021458 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021459
21460 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21461 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21462 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21463 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21464 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21465 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021466 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021467
21468 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21469 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21470 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21471 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21472 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21473 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021474 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021475
21476 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21477 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21478 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21479 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21480 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21481 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021482 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021483
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021484 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21485 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21486 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21487 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21488 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21489 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21490 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21491 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21492 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21493 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21494 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21495 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21496 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21497 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21498 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21499 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21500 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21501 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21502
21503 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21504 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21505 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21506 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21507 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21508 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21509 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21510 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21511 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21512 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21513 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21514 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21515 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21516 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21517 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21518 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21519 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21520 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21521
21522 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21523 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21524 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21525 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21526 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21527 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21528 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21529 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21530 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21531 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21532 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21533 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21534 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21535 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21536 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21537 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21538 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21539
21540 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21541 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21542 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21543 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21544 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21545 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21546 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21547 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21548 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21549 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21550 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21551 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21552 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21553 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21554 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21555 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21556 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21557
21558 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21559 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21560 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021561 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021562 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21563 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21564 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021565 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21566 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021567 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21568 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021569 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021570 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21571 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021572 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021573 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21574 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21575 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021576 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21577 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021578 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21579 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21580 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21581
21582 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21583 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21584 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021585 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021586 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21587 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21588 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021589 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21590 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021591 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21592 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021593 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021594 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21595 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21596 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21597 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21598 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21599 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21600 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21601 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21602 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021603 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021604 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021605 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21606 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21607 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21608 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021609 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021610 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021611 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21612 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021613
21614 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21615 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21616 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21617 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21618 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21619 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21620 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21621 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21622 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21623 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21624 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21625 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21626 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21627 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21628 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21629 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021630 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021631 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21632
21633 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21634 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21635 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21636 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21637 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21638 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21639 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21640 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21641 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21642 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21643 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21644 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21645 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21646 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21647 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21648 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021649 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021650 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
21651
21652 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21653 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21654 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21655 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21656 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21657 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21658 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21659 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21660 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21661 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21662 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21663 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21664 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21665 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21666 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21667 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21668 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
21669
21670 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21671 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21672 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21673 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21674 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21675 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21676 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21677 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21678 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21679 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21680 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21681 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21682 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21683 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21684 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21685 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21686 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
21687
Rohit Kumara5077932017-09-10 22:05:05 +053021688 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21689 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21690 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21691 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21692 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21693 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21694 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21695 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21696 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21697 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21698 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21699 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21700 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21701 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21702 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21703 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21704 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
21705
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021706 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21707 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21708 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21709 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21710 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21711 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
21712
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021713 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
21714 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21715 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21716 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
21717
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021718 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21719 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21720 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21721 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21722 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21723 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
21724
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021725 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
21726 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021727 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21728 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21729 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21730 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
21731
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021732 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
21733 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021734 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21735 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21736 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21737 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
21738
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021739 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21740 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021741 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21742 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21743 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21744 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
21745
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021746 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
21747 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021748 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21749 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21750 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21751 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
21752
Karthikeyan Mani57550082018-05-03 18:43:58 -070021753 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
21754 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21755 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
21756 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21757 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21758 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
21759
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021760 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21761 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21762 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21763 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21764 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021765 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
21766
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021767 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21768 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21769 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21770 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21771 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21772 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
21773
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021774 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21775 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021776 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21777 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21778 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21779 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
21780
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021781 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21782 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021783 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21784 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21785 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21786 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
21787
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021788 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21789 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021790 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21791 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21792 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21793 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
21794
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021795 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21796 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021797 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21798 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21799 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21800 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
21801
Rohit Kumara5077932017-09-10 22:05:05 +053021802 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21803 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021804 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21805 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21806 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21807 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
21808
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021809 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21810 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21811 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21812 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21813 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21814 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
21815 {"HDMI", NULL, "HDMI_DL_HL"},
21816
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021817 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021818 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21819 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21820 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080021821 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021822 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
21823
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021824 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021825 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21826 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21827 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21828 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21829 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
21830
21831 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21832 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21833 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21834 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21835 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21836 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
21837
21838 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21839 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21840 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21841 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21842 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21843 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
21844
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021845 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021846 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21847 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21848 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21849 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21850 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
21851
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021852 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021853 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21854 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21855 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21856 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
21857
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021858 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021859 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21860 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21861 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21862 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
21863
21864 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21865 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
21866
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021867 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21868 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21869 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
21870
21871 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21872 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21873 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
21874
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021875 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21876 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21877 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21878 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021879 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021880 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070021881 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021882 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021883 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
21884 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
21885
21886 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21887 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21888 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21889 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21890 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21891 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21892 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21893 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21894 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21895 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021896 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21897 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021898
21899 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21900 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21901 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21902 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21903
21904 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21905 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21906 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21907 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21908
21909 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21910 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21911 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21912 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21913
21914 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21915 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21916 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21917 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21918
21919 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21920 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21921 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21922 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21923
21924 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21925 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21926 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21927 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21928
21929 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21930 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21931 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21932 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21933
Laxminath Kasam38070be2017-08-17 18:21:59 +053021934 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21935 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21936 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21937 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21938 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21939 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21940 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21941 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21942 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21943 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021944 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21945 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070021946
21947 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21948 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21949 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21950 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21951
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021952 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21953 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21954 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21955 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21956
21957 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21958 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21959 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21960 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21961
21962 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21963 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21964 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21965 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21966
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021967 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21968 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21969 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21970 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21971
21972 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21973 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21974 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21975 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080021976
21977 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21978 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21979 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21980 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21981 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21982 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21983 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21984 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21985
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021986 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
21987 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
21988 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
21989 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
21990 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
21991 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
21992 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
21993 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021994 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021995 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021996 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
21997 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
21998 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021999 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
22000 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022001
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022002 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
22003 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
22004 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
22005 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
22006 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
22007 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
22008 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
22009 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
22010 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
22011 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
22012 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
22013 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
22014 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
22015 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
22016 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022017 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022018 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022019 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
22020 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
22021 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
22022 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
22023 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
22024 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022025 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
22026
22027 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
22028 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
22029 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
22030 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
22031 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
22032 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
22033 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
22034 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
22035 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
22036 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
22037 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
22038 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
22039 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
22040 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
22041 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022042 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022043 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
22044 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
22045 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
22046 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
22047 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
22048 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022049 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
22050
22051 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
22052 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
22053 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
22054 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
22055 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
22056 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
22057 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
22058 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
22059 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
22060 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
22061 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
22062 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
22063 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
22064 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022065 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022066 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
22067 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
22068
22069 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
22070 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
22071 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
22072 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
22073 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
22074 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
22075 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
22076 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
22077 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
22078 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
22079 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
22080 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
22081 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
22082 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
22083 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022084 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22085 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
22086 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022087 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22088 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
22089 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022090 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22091 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22092 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22093 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22094 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22095 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22096 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22097 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022098 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22099 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022100 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022101 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022102 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022103 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
22104
22105 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22106 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22107 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22108 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22109 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22110 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22111 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22112 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022113 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22114 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022115 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022116 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022117 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022118 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
22119
22120
22121 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22122 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22123 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22124 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22125 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22126 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22127 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22128 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022129 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22130 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022131 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022132 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022133 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022134 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
22135
22136
22137 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22138 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22139 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22140 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22141 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22142 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22143 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22144 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022145 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22146 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022147 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022148 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022149 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022150 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
22151
22152 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22153 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22154 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22155 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22156 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22157 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22158 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22159 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022160 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22161 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022162 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022163 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022164 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022165 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
22166
22167 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22168 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22169 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22170 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22171 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22172 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022173 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22174 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022175 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022176 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022177 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022178 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
22179
22180 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22181 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22182 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22183 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22184 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22185 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022186 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22187 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022188 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022189 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022190 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022191 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
22192
22193 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22194 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22195 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22196 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22197 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22198 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022199 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22200 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022201 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022202 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022203 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022204 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
22205
22206
22207 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
22208 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
22209 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
22210 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
22211 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
22212 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
22213 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
22214 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
22215 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
22216 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
22217 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022218 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022219 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
22220 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
22221 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
22222 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
22223 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
22224 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
22225
22226 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
22227 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
22228 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
22229 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
22230 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
22231 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
22232 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
22233 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
22234 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
22235 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
22236 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
22237 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080022238 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
22239 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022240 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022241 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022242 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022243 {"MI2S_RX", NULL, "MI2S_DL_HL"},
22244 {"MI2S_UL_HL", NULL, "MI2S_TX"},
22245 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
22246 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
22247
22248 /* connect to INT4_MI2S_DL_HL since same pcm_id */
22249 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22250 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
22251 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22252 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
22253 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
22254 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
22255 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
22256 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
22257 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
22258 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
22259
22260 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
22261 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022262 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
22263 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022264 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22265 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
22266 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22267 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
22268 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
22269 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
22270 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
22271 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
22272 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
22273 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
22274
22275 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
22276 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
22277 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
22278 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
22279 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
22280 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
22281 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
22282 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
22283 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
22284 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
22285 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
22286 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
22287 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
22288 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
22289 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
22290 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022291 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022292 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
22293 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
22294 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
22295 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022296 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022297 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
22298 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
22299 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
22300 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
22301 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
22302 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
22303 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
22304 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
22305 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
22306 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
22307 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
22308 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022309 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
22310 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
22311 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
22312 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
22313 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
22314 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
22315 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
22316 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022317
22318 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22319 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22320 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22321 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22322 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22323 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22324 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22325 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22326 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22327 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22328 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22329 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22330 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22331 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22332 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22333 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022334 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22335 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22336 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22337 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022338 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
22339
22340 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22341 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22342 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22343 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22344 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22345 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22346 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22347 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22348 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22349 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22350 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22351 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22352 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22353 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22354 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22355 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022356 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22357 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22358 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22359 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022360 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
22361
22362 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22363 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22364 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22365 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22366 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22367 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22368 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22369 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22370 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22371 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22372 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22373 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22374 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22375 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22376 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22377 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022378 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22379 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22380 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22381 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022382 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22383
22384 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22385 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22386 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22387 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22388 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22389 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22390 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22391 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22392 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22393 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22394 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22395 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22396 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22397 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22398 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22399 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022400 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22401 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22402 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22403 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022404 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22405
22406 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22407 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22408 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22409 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22410 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22411 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22412 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22413 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22414 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22415 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22416 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22417 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22418 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22419 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22420 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22421 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022422 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22423 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22424 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22425 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022426 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22427
22428 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22429 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22430 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22431 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22432 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22433 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22434 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22435 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22436 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22437 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22438 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22439 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22440 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22441 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22442 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22443 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022444 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22445 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22446 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22447 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022448 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22449
22450 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22451 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22452 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22453 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22454 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22455 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22456 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22457 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22458 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22459 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22460 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22461 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22462 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22463 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22464 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22465 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022466 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22467 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22468 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22469 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022470 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22471
22472 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22473 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22474 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22475 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22476 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22477 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22478 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22479 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22480 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22481 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22482 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22483 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22484 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22485 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22486 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22487 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022488 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22489 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22490 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22491 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022492 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22493
Derek Chenfdcc0982018-10-02 15:14:03 -070022494 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
22495 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
22496
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022497 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22498 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22499 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22500 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22501 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22502 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22503 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22504 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22505 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22506 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22507 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22508 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22509 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22510 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22511 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22512 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022513 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22514 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22515 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22516 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022517 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22518
22519 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22520 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22521 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22522 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22523 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22524 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22525 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22526 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22527 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22528 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22529 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22530 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22531 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22532 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22533 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22534 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022535 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22536 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22537 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22538 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022539 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22540
22541 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22542 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22543 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22544 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22545 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22546 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22547 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22548 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22549 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22550 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22551 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22552 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22553 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22554 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22555 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22556 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022557 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22558 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22559 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22560 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022561 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22562
22563 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22564 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22565 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22566 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22567 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22568 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22569 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22570 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22571 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22572 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22573 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22574 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22575 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22576 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22577 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22578 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022579 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22580 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22581 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22582 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022583 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22584
22585 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22586 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22587 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22588 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22589 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22590 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22591 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22592 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22593 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22594 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22595 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22596 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22597 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22598 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22599 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22600 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022601 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22602 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22603 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22604 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022605 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22606
22607 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22608 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22609 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22610 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22611 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22612 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22613 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22614 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22615 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22616 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22617 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22618 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22619 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22620 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22621 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22622 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022623 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22624 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22625 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22626 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022627 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22628
22629 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22630 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22631 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22632 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22633 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22634 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22635 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22636 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22637 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22638 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22639 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22640 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22641 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22642 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22643 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22644 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022645 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22646 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22647 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22648 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022649 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
22650
22651 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22652 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22653 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22654 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22655 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22656 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22657 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22658 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22659 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22660 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22661 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22662 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22663 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22664 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22665 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22666 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022667 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22668 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22669 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22670 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022671 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
22672
Rohit Kumara5077932017-09-10 22:05:05 +053022673 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22674 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22675 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22676 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22677 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22678 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22679 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22680 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22681 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22682 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22683 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22684 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22685 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22686 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22687 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22688 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22689 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22690 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22691 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22692 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022693 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022694
22695 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22696 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22697 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22698 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22699 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22700 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22701 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22702 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22703 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22704 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22705 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22706 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22707 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22708 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22709 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22710 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22711 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22712 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22713 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22714 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022715 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022716
22717 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22718 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22719 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22720 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22721 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22722 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22723 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22724 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22725 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22726 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22727 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22728 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22729 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22730 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22731 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22732 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22733 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22734 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22735 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22736 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022737 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022738
22739 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22740 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22741 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22742 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22743 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22744 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22745 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22746 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22747 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22748 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22749 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22750 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22751 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22752 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22753 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22754 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22755 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22756 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22757 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22758 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022759 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022760
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022761 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22762 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22763 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22764 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022765 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022766 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22767 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22768 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22769 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022770 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022771 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22772 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
22773
22774 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22775 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22776 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22777 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022778 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022779 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22780 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22781 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022782 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022783 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22784 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22785 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
22786
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022787 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22788 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22789 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080022790 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22791 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080022792 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22793 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022794
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022795 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22796 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22797 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22798 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22799 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022800 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022801 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22802 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22803 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22804 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022805 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022806 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22807 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22808 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22809 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22810 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022811 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022812 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22813 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
22814 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22815 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22816 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
22817 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22818 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
22819 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
22820 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
22821 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
22822
22823
22824 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22825 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22826 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22827 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22828 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022829 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022830 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
22831
22832 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22833 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22834 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022835 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022836 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
22837
22838 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22839 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22840 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22841 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
22842
22843 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22844 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
22845 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22846 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
22847
Rohit Kumara5077932017-09-10 22:05:05 +053022848 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22849 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
22850 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22851 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
22852
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022853 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22854 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22855 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22856 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22857 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22858 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22859 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22860 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022861 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022862 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
22863 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22864 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22865 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22866 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22867 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22868 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22869 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22870 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22871 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22872 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
22873
22874 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22875 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22876 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22877 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22878 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22879 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22880 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22881 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22882 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22883 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22884 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22885 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
22886
22887 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22888 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22889 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22890 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22891 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22892 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22893 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22894 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22895 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22896 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22897 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22898 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
22899
kunleizdf5a00a2017-11-27 15:27:36 +080022900 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22901 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022902 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022903
22904 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22905 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022906 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022907
22908 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22909 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022910 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
22911
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022912 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
22913 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022914 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22915 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22916 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22917 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
22918
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022919 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
22920 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022921 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22922 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22923 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22924 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
22925
22926 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22927 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22928 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22929 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
22930 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22931 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22932 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
22933 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
22934 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22935 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
22936 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
22937 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
22938 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
22939
22940 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22941 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22942 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22943 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22944 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022945 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022946 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22947 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22948 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22949 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22950 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22951 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22952 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22953 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
22954
22955 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22956 {"HDMI", NULL, "HDMI_RX Port Mixer"},
22957
22958 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22959 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
22960
Karthikeyan Mani57550082018-05-03 18:43:58 -070022961 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
22962 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
22963
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022964 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22965 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
22966
22967 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22968 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22969 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
22970
22971 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22972 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22973 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22974 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022975 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022976 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22977 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22978 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22979 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022980 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022981 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
22982
22983 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22984 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22985 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22986 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022987 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022988 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22989 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22990 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022991 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022992 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
22993
22994 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22995 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22996 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22997 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022998 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022999 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23000 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23001 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
23002
23003 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23004 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23005 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23006 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023007 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023008 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23009 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23010 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23011 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23012 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
23013
Rohit Kumara5077932017-09-10 22:05:05 +053023014 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23015 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23016 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23017 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23018 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
23019 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23020 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23021 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
23022
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023023 /* Backend Enablement */
23024
23025 {"BE_OUT", NULL, "PRI_I2S_RX"},
23026 {"BE_OUT", NULL, "SEC_I2S_RX"},
23027 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
23028 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
23029 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
23030 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23031 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
23032 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
23033 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
23034 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
23035 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023036 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023037 {"BE_OUT", NULL, "USB_AUDIO_RX"},
23038 {"BE_OUT", NULL, "HDMI"},
23039 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070023040 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023041 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
23042 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023043 {"BE_OUT", NULL, "MI2S_RX"},
23044 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
23045 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
23046 {"BE_OUT", NULL, "TERT_MI2S_RX"},
23047 {"BE_OUT", NULL, "SEC_MI2S_RX"},
23048 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
23049 {"BE_OUT", NULL, "PRI_MI2S_RX"},
23050 {"BE_OUT", NULL, "INT0_MI2S_RX"},
23051 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023052 {"BE_OUT", NULL, "INT2_MI2S_RX"},
23053 {"BE_OUT", NULL, "INT3_MI2S_RX"},
23054 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023055 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23056 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
23057 {"BE_OUT", NULL, "INT_FM_RX"},
23058 {"BE_OUT", NULL, "PCM_RX"},
23059 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23060 {"BE_OUT", NULL, "AUX_PCM_RX"},
23061 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
23062 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
23063 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023064 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023065 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23066 {"BE_OUT", NULL, "INT_FM_RX"},
23067 {"BE_OUT", NULL, "PCM_RX"},
23068 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23069 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
23070 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
23071 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
23072 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
23073 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
23074 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
23075 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
23076 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
23077 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
23078 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023079 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023080 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
23081 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
23082 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
23083 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
23084 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
23085 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
23086 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
23087 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
23088 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023089 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
23090 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
23091 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
23092 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023093 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
23094 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023095 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
23096 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
23097 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
23098 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
23099 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
23100 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
23101 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
23102 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023103
23104 {"PRI_I2S_TX", NULL, "BE_IN"},
23105 {"MI2S_TX", NULL, "BE_IN"},
23106 {"QUAT_MI2S_TX", NULL, "BE_IN"},
23107 {"QUIN_MI2S_TX", NULL, "BE_IN"},
23108 {"PRI_MI2S_TX", NULL, "BE_IN"},
23109 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023110 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023111 {"INT2_MI2S_TX", NULL, "BE_IN"},
23112 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023113 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023114 {"INT5_MI2S_TX", NULL, "BE_IN"},
23115 {"SEC_MI2S_TX", NULL, "BE_IN"},
23116 {"SENARY_MI2S_TX", NULL, "BE_IN" },
23117 {"SLIMBUS_0_TX", NULL, "BE_IN" },
23118 {"SLIMBUS_1_TX", NULL, "BE_IN" },
23119 {"SLIMBUS_3_TX", NULL, "BE_IN" },
23120 {"SLIMBUS_4_TX", NULL, "BE_IN" },
23121 {"SLIMBUS_5_TX", NULL, "BE_IN" },
23122 {"SLIMBUS_6_TX", NULL, "BE_IN" },
23123 {"SLIMBUS_7_TX", NULL, "BE_IN" },
23124 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053023125 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023126 {"USB_AUDIO_TX", NULL, "BE_IN" },
23127 {"INT_BT_SCO_TX", NULL, "BE_IN"},
23128 {"INT_FM_TX", NULL, "BE_IN"},
23129 {"PCM_TX", NULL, "BE_IN"},
23130 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23131 {"BE_OUT", NULL, "STUB_RX"},
23132 {"STUB_TX", NULL, "BE_IN"},
23133 {"STUB_1_TX", NULL, "BE_IN"},
23134 {"BE_OUT", NULL, "AUX_PCM_RX"},
23135 {"AUX_PCM_TX", NULL, "BE_IN"},
23136 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
23137 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
23138 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023139 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023140 {"INCALL_RECORD_TX", NULL, "BE_IN"},
23141 {"INCALL_RECORD_RX", NULL, "BE_IN"},
23142 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
23143 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023144 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
23145 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023146 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
23147 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23148 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23149 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
23150 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023151 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
23152 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023153 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
23154 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
23155 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
23156 {"PRI_TDM_TX_0", NULL, "BE_IN"},
23157 {"PRI_TDM_TX_1", NULL, "BE_IN"},
23158 {"PRI_TDM_TX_2", NULL, "BE_IN"},
23159 {"PRI_TDM_TX_3", NULL, "BE_IN"},
23160 {"SEC_TDM_TX_0", NULL, "BE_IN"},
23161 {"SEC_TDM_TX_1", NULL, "BE_IN"},
23162 {"SEC_TDM_TX_2", NULL, "BE_IN"},
23163 {"SEC_TDM_TX_3", NULL, "BE_IN"},
23164 {"TERT_TDM_TX_0", NULL, "BE_IN"},
23165 {"TERT_TDM_TX_1", NULL, "BE_IN"},
23166 {"TERT_TDM_TX_2", NULL, "BE_IN"},
23167 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023168 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023169 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
23170 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
23171 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
23172 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053023173 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023174 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
23175 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
23176 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
23177 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023178 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
23179 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
23180 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
23181 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
23182 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023183 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023184 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
23185 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
23186 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
23187 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
23188 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
23189 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023190 {"PRI_SPDIF_TX", NULL, "BE_IN"},
23191 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023192};
23193
23194static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
23195 struct snd_pcm_hw_params *params)
23196{
23197 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23198 unsigned int be_id = rtd->dai_link->id;
23199
23200 if (be_id >= MSM_BACKEND_DAI_MAX) {
23201 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23202 return -EINVAL;
23203 }
23204
23205 mutex_lock(&routing_lock);
23206 msm_bedais[be_id].sample_rate = params_rate(params);
23207 msm_bedais[be_id].channel = params_channels(params);
23208 msm_bedais[be_id].format = params_format(params);
23209 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
23210 __func__, msm_bedais[be_id].sample_rate,
23211 msm_bedais[be_id].format, be_id);
23212 mutex_unlock(&routing_lock);
23213 return 0;
23214}
23215
23216static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
23217{
23218 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23219 unsigned int be_id = rtd->dai_link->id;
23220 int i, session_type, path_type, topology;
23221 struct msm_pcm_routing_bdai_data *bedai;
23222 struct msm_pcm_routing_fdai_data *fdai;
23223
23224 pr_debug("%s: substream->pcm->id:%s\n",
23225 __func__, substream->pcm->id);
23226
23227 if (be_id >= MSM_BACKEND_DAI_MAX) {
23228 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23229 return -EINVAL;
23230 }
23231
23232 bedai = &msm_bedais[be_id];
23233 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
23234 0 : 1);
23235 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23236 path_type = ADM_PATH_PLAYBACK;
23237 else
23238 path_type = ADM_PATH_LIVE_REC;
23239
23240 mutex_lock(&routing_lock);
23241 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23242 if (!is_mm_lsm_fe_id(i))
23243 continue;
23244 fdai = &fe_dai_map[i][session_type];
23245 if (fdai->strm_id != INVALID_SESSION) {
23246 int idx;
23247 int port_id;
23248 unsigned long copp =
23249 session_copp_map[i][session_type][be_id];
23250 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
23251 if (test_bit(idx, &copp))
23252 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070023253
23254 if (idx >= MAX_COPPS_PER_PORT) {
23255 pr_debug("%s: copp idx is invalid, exiting\n",
23256 __func__);
23257 continue;
23258 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023259 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053023260 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023261 topology = adm_get_topology_for_port_copp_idx(port_id,
23262 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023263 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053023264 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023265 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
23266 __func__, copp, i, session_type, be_id,
23267 topology);
23268 clear_bit(idx,
23269 &session_copp_map[i][session_type][be_id]);
23270 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023271 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023272 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023273 topology);
23274 }
23275 }
23276
23277 bedai->active = 0;
23278 bedai->sample_rate = 0;
23279 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023280 mutex_unlock(&routing_lock);
23281
23282 return 0;
23283}
23284
23285static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
23286{
23287 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23288 unsigned int be_id = rtd->dai_link->id;
23289 int i, path_type, topology;
23290 int session_type = INVALID_SESSION;
23291 struct msm_pcm_routing_bdai_data *bedai;
23292 u32 channels, sample_rate;
23293 uint16_t bits_per_sample = 16, voc_path_type;
23294 struct msm_pcm_routing_fdai_data *fdai;
23295 u32 session_id;
23296 struct media_format_info voc_be_media_format;
23297 bool is_lsm;
23298
23299 pr_debug("%s: substream->pcm->id:%s\n",
23300 __func__, substream->pcm->id);
23301
23302 if (be_id >= MSM_BACKEND_DAI_MAX) {
23303 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23304 return -EINVAL;
23305 }
23306
23307 bedai = &msm_bedais[be_id];
23308
23309 mutex_lock(&routing_lock);
23310 if (bedai->active == 1)
23311 goto done; /* Ignore prepare if back-end already active */
23312
23313 /* AFE port is not active at this point. However, still
23314 * go ahead setting active flag under the notion that
23315 * QDSP6 is able to handle ADM starting before AFE port
23316 * is started.
23317 */
23318 bedai->active = 1;
23319
23320 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23321 if (!(is_mm_lsm_fe_id(i) &&
23322 route_check_fe_id_adm_support(i)))
23323 continue;
23324
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023325 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
23326 SESSION_TYPE_RX : SESSION_TYPE_TX;
23327 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023328 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023329 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023330 path_type = ADM_PATH_COMPRESSED_RX;
23331 else
23332 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023333 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023334 if ((fdai->passthr_mode != LEGACY_PCM) &&
23335 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020023336 path_type = ADM_PATH_COMPRESSED_TX;
23337 else
23338 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023339 }
23340
23341 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
23342 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023343 if (fdai->strm_id != INVALID_SESSION) {
23344 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053023345 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023346
23347 if (session_type == SESSION_TYPE_TX &&
23348 fdai->be_srate &&
23349 (fdai->be_srate != bedai->sample_rate)) {
23350 pr_debug("%s: flush strm %d diff BE rates\n",
23351 __func__,
23352 fdai->strm_id);
23353
23354 if (fdai->event_info.event_func)
23355 fdai->event_info.event_func(
23356 MSM_PCM_RT_EVT_BUF_RECFG,
23357 fdai->event_info.priv_data);
23358 fdai->be_srate = 0; /* might not need it */
23359 }
23360 bits_per_sample = msm_routing_get_bit_width(
23361 bedai->format);
23362
23363 app_type =
23364 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
23365 if (app_type && is_lsm) {
23366 app_type_idx =
23367 msm_pcm_routing_get_lsm_app_type_idx(app_type);
23368 sample_rate =
23369 fe_dai_app_type_cfg[i][session_type][be_id]
23370 .sample_rate;
23371 bits_per_sample =
23372 lsm_app_type_cfg[app_type_idx].bit_width;
23373 } else if (app_type) {
23374 app_type_idx =
23375 msm_pcm_routing_get_app_type_idx(app_type);
23376 sample_rate =
23377 fe_dai_app_type_cfg[i][session_type]
23378 [be_id].sample_rate;
23379 bits_per_sample =
23380 app_type_cfg[app_type_idx].bit_width;
23381 } else
23382 sample_rate = bedai->sample_rate;
23383 /*
23384 * check if ADM needs to be configured with different
23385 * channel mapping than backend
23386 */
23387 if (!bedai->adm_override_ch)
23388 channels = bedai->channel;
23389 else
23390 channels = bedai->adm_override_ch;
23391 acdb_dev_id =
23392 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23393 topology = msm_routing_get_adm_topology(i, session_type,
23394 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023395
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023396 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23397 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23398 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023399 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23400
Surendar Karkae7507512018-07-20 15:46:54 +053023401 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023402 sample_rate, channels, topology,
23403 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053023404 app_type, acdb_dev_id,
23405 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023406 if ((copp_idx < 0) ||
23407 (copp_idx >= MAX_COPPS_PER_PORT)) {
23408 pr_err("%s: adm open failed\n", __func__);
23409 mutex_unlock(&routing_lock);
23410 return -EINVAL;
23411 }
23412 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23413 __func__, i, session_type, be_id);
23414 set_bit(copp_idx,
23415 &session_copp_map[i][session_type][be_id]);
23416
23417 if (msm_is_resample_needed(
23418 sample_rate,
23419 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053023420 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023421 bedai->sample_rate);
23422
23423 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023424 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023425 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023426 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023427 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023428 topology, channels);
23429 }
23430 }
23431
23432 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23433 session_id = msm_pcm_routing_get_voc_sessionid(i);
23434 if (session_id) {
23435 pr_debug("%s voice session_id: 0x%x\n", __func__,
23436 session_id);
23437
23438 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23439 voc_path_type = RX_PATH;
23440 else
23441 voc_path_type = TX_PATH;
23442
23443 voc_set_route_flag(session_id, voc_path_type, 1);
23444
23445 memset(&voc_be_media_format, 0,
23446 sizeof(struct media_format_info));
23447
23448 voc_be_media_format.port_id = bedai->port_id;
23449 voc_be_media_format.num_channels = bedai->channel;
23450 voc_be_media_format.sample_rate = bedai->sample_rate;
23451 voc_be_media_format.bits_per_sample = bedai->format;
23452 /* Defaulting this to 1 for voice call usecases */
23453 voc_be_media_format.channel_mapping[0] = 1;
23454
23455 voc_set_device_config(session_id, voc_path_type,
23456 &voc_be_media_format);
23457
23458 if (voc_get_route_flag(session_id, RX_PATH) &&
23459 voc_get_route_flag(session_id, TX_PATH))
23460 voc_enable_device(session_id);
23461 }
23462 }
23463
23464 /* Check if backend is an external ec ref port and set as needed */
23465 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23466
23467 memset(&voc_be_media_format, 0,
23468 sizeof(struct media_format_info));
23469
23470 /* Get format info for ec ref port from msm_bedais[] */
23471 voc_be_media_format.port_id = bedai->port_id;
23472 voc_be_media_format.num_channels = bedai->channel;
23473 voc_be_media_format.bits_per_sample = bedai->format;
23474 voc_be_media_format.sample_rate = bedai->sample_rate;
23475 /* Defaulting this to 1 for voice call usecases */
23476 voc_be_media_format.channel_mapping[0] = 1;
23477 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23478 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23479 __func__, voc_be_media_format.port_id,
23480 voc_be_media_format.num_channels,
23481 voc_be_media_format.bits_per_sample,
23482 voc_be_media_format.sample_rate);
23483 }
23484
23485done:
23486 mutex_unlock(&routing_lock);
23487
23488 return 0;
23489}
23490
23491static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23492 int fe_id)
23493{
23494 int index, topo_id, be_idx;
23495 unsigned long pp_config = 0;
23496 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023497 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023498 bool compr_passthr_mode = true;
23499
23500 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23501
23502 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23503 pr_err("%s: Device pp params on invalid port %d\n",
23504 __func__, port_id);
23505 return -EINVAL;
23506 }
23507
23508 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23509 if (port_id == msm_bedais[be_idx].port_id)
23510 break;
23511 }
23512
23513 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23514 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23515 return -EINVAL;
23516 }
23517
23518 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23519 if (msm_bedais_pp_params[index].port_id == port_id)
23520 break;
23521 }
23522 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23523 pr_err("%s: Invalid backend pp params index %d\n",
23524 __func__, index);
23525 return -EINVAL;
23526 }
23527
23528 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23529 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23530 pr_err("%s: Invalid passthrough topology 0x%x\n",
23531 __func__, topo_id);
23532 return -EINVAL;
23533 }
23534
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023535 session_type =
23536 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23537 SESSION_TYPE_RX : SESSION_TYPE_TX;
23538
23539 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23540 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023541 compr_passthr_mode = false;
23542
23543 pp_config = msm_bedais_pp_params[index].pp_params_config;
23544 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23545 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23546 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23547 mute_on = msm_bedais_pp_params[index].mute_on;
23548 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23549 adm_send_compressed_device_mute(port_id,
23550 copp_idx,
23551 mute_on);
23552 }
23553 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23554 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23555 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23556 &pp_config);
23557 latency = msm_bedais_pp_params[index].latency;
23558 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23559 adm_send_compressed_device_latency(port_id,
23560 copp_idx,
23561 latency);
23562 }
23563 return 0;
23564}
23565
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023566static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23567{
23568 uint32_t topology = NULL_COPP_TOPOLOGY;
23569 void *cal_info = NULL;
23570 uint32_t size = 0;
23571
23572 /* Retrieve cal_info size from cal data*/
23573 size = data_size - sizeof(struct audio_cal_type_basic);
23574 cal_info = kzalloc(size, GFP_KERNEL);
23575
23576 if (!cal_info)
23577 goto done;
23578
23579 memcpy(cal_info,
23580 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23581
23582 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23583 kfree(cal_info);
23584 cal_info = NULL;
23585
23586done:
23587 pr_debug("%s: Using topology %d\n", __func__, topology);
23588
23589 return topology;
23590}
23591
23592static void msm_routing_load_topology(size_t data_size, void *data)
23593{
23594 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023595 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023596
23597 topology_id = msm_routing_get_topology(data_size, data);
23598 if (topology_id != NULL_COPP_TOPOLOGY)
23599 ret = q6core_load_unload_topo_modules(topology_id,
23600 CORE_LOAD_TOPOLOGY);
23601 if (ret < 0)
23602 pr_debug("%s %d load topology failed\n",
23603 __func__, topology_id);
23604
23605}
23606
23607static void msm_routing_unload_topology(uint32_t topology_id)
23608{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023609 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023610
23611 if (topology_id != NULL_COPP_TOPOLOGY)
23612 ret = q6core_load_unload_topo_modules(topology_id,
23613 CORE_UNLOAD_TOPOLOGY);
23614 if (ret < 0)
23615 pr_debug("%s %d unload topology failed\n",
23616 __func__, topology_id);
23617
23618}
23619
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023620static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23621 struct snd_ctl_elem_value *ucontrol)
23622{
23623 int pp_id = ucontrol->value.integer.value[0];
23624 int port_id = 0;
23625 int index, be_idx, i, topo_id, idx;
23626 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023627 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023628 bool compr_passthr_mode = true;
23629
23630 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23631
23632 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23633 port_id = msm_bedais[be_idx].port_id;
23634 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
23635 break;
23636 }
23637
23638 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23639 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23640 return -EINVAL;
23641 }
23642
23643 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23644 if (msm_bedais_pp_params[index].port_id == port_id)
23645 break;
23646 }
23647 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23648 pr_err("%s: Invalid pp params backend index %d\n",
23649 __func__, index);
23650 return -EINVAL;
23651 }
23652
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023653 session_type =
23654 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23655 SESSION_TYPE_RX : SESSION_TYPE_TX;
23656
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023657 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
23658 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023659 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
23660 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023661 compr_passthr_mode = false;
23662
23663 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23664 unsigned long copp =
23665 session_copp_map[i]
23666 [SESSION_TYPE_RX][be_idx];
23667 if (!test_bit(idx, &copp))
23668 continue;
23669 topo_id = adm_get_topology_for_port_copp_idx(port_id,
23670 idx);
23671 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
23672 continue;
23673 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
23674 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023675 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023676 switch (pp_id) {
23677 case ADM_PP_PARAM_MUTE_ID:
23678 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23679 mute = ucontrol->value.integer.value[1] ? true : false;
23680 msm_bedais_pp_params[index].mute_on = mute;
23681 set_bit(ADM_PP_PARAM_MUTE_BIT,
23682 &msm_bedais_pp_params[index].pp_params_config);
23683 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23684 adm_send_compressed_device_mute(port_id,
23685 idx, mute);
23686 break;
23687 case ADM_PP_PARAM_LATENCY_ID:
23688 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23689 msm_bedais_pp_params[index].latency =
23690 ucontrol->value.integer.value[1];
23691 set_bit(ADM_PP_PARAM_LATENCY_BIT,
23692 &msm_bedais_pp_params[index].pp_params_config);
23693 latency = msm_bedais_pp_params[index].latency =
23694 ucontrol->value.integer.value[1];
23695 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23696 adm_send_compressed_device_latency(port_id,
23697 idx, latency);
23698 break;
23699 default:
23700 pr_info("%s, device pp param %d not supported\n",
23701 __func__, pp_id);
23702 break;
23703 }
23704 }
23705 }
23706 return 0;
23707}
23708
23709static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23710 struct snd_ctl_elem_value *ucontrol)
23711{
23712 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
23713 return 0;
23714}
23715
23716static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
23717 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
23718 0, 3, msm_routing_get_device_pp_params_mixer,
23719 msm_routing_put_device_pp_params_mixer),
23720};
23721
23722static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
23723 struct snd_ctl_elem_value *ucontrol)
23724{
23725 ucontrol->value.integer.value[0] =
23726 core_get_license_status(ASM_MEDIA_FMT_APTX);
23727 pr_debug("%s: status %ld\n", __func__,
23728 ucontrol->value.integer.value[0]);
23729 return 0;
23730}
23731
23732static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
23733 struct snd_ctl_elem_value *ucontrol)
23734{
23735 int32_t status = 0;
23736
23737 status = core_set_license(ucontrol->value.integer.value[0],
23738 APTX_CLASSIC_DEC_LICENSE_ID);
23739 pr_debug("%s: status %d\n", __func__, status);
23740 return status;
23741}
23742
23743static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
23744 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
23745 0xFFFF, 0, msm_aptx_dec_license_control_get,
23746 msm_aptx_dec_license_control_put),
23747};
23748
23749static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
23750 struct snd_ctl_elem_info *uinfo)
23751{
23752 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
23753 uinfo->count = sizeof(be_dai_name_table);
23754 return 0;
23755}
23756
23757static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
23758 unsigned int __user *bytes,
23759 unsigned int size)
23760{
23761 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023762 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023763
23764 if (size < sizeof(be_dai_name_table)) {
23765 pr_err("%s: invalid size %d requested, returning\n",
23766 __func__, size);
23767 ret = -EINVAL;
23768 goto done;
23769 }
23770
23771 /*
23772 * Fill be_dai_name_table from msm_bedais table to reduce code changes
23773 * needed when adding new backends
23774 */
23775 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23776 be_dai_name_table[i].be_id = i;
23777 strlcpy(be_dai_name_table[i].be_name,
23778 msm_bedais[i].name,
23779 LPASS_BE_NAME_MAX_LENGTH);
23780 }
23781
23782 ret = copy_to_user(bytes, &be_dai_name_table,
23783 sizeof(be_dai_name_table));
23784 if (ret) {
23785 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
23786 ret = -EFAULT;
23787 }
23788
23789done:
23790 return ret;
23791}
23792
23793static const struct snd_kcontrol_new
23794 msm_routing_be_dai_name_table_mixer_controls[] = {
23795 {
23796 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
23797 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
23798 .info = msm_routing_be_dai_name_table_info,
23799 .name = "Backend DAI Name Table",
23800 .tlv.c = snd_soc_bytes_tlv_callback,
23801 .private_value = (unsigned long) &(struct soc_bytes_ext) {
23802 .max = sizeof(be_dai_name_table),
23803 .get = msm_routing_be_dai_name_table_tlv_get,
23804 }
23805 },
23806};
23807
23808static int msm_routing_stereo_channel_reverse_control_get(
23809 struct snd_kcontrol *kcontrol,
23810 struct snd_ctl_elem_value *ucontrol)
23811{
23812 ucontrol->value.integer.value[0] = swap_ch;
23813 pr_debug("%s: Swap channel value: %ld\n", __func__,
23814 ucontrol->value.integer.value[0]);
23815 return 0;
23816}
23817
23818static int msm_routing_stereo_channel_reverse_control_put(
23819 struct snd_kcontrol *kcontrol,
23820 struct snd_ctl_elem_value *ucontrol)
23821{
23822 int i, idx, be_index, port_id;
23823 int ret = 0;
23824 unsigned long copp;
23825
23826 pr_debug("%s Swap channel value:%ld\n", __func__,
23827 ucontrol->value.integer.value[0]);
23828
23829 swap_ch = ucontrol->value.integer.value[0];
23830
23831 mutex_lock(&routing_lock);
23832 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
23833 port_id = msm_bedais[be_index].port_id;
23834 if (!msm_bedais[be_index].active)
23835 continue;
23836
23837 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
23838 MSM_FRONTEND_DAI_MM_SIZE) {
23839 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
23840 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23841 if (!test_bit(idx, &copp))
23842 continue;
23843
23844 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
23845 __func__, port_id, idx);
23846 ret = adm_swap_speaker_channels(
23847 port_id, idx,
23848 msm_bedais[be_index].sample_rate,
23849 swap_ch);
23850 if (ret) {
23851 pr_err("%s:Swap_channel failed, err=%d\n",
23852 __func__, ret);
23853 goto done;
23854 }
23855 }
23856 }
23857 }
23858done:
23859 mutex_unlock(&routing_lock);
23860 return ret;
23861}
23862
23863static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
23864 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
23865 1, 0, msm_routing_stereo_channel_reverse_control_get,
23866 msm_routing_stereo_channel_reverse_control_put),
23867};
23868
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023869static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
23870 struct snd_ctl_elem_info *uinfo)
23871{
23872 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
23873 uinfo->count = 1;
23874 return 0;
23875}
23876
23877static int msm_routing_instance_id_support_put(
23878 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23879{
23880 bool supported = ucontrol->value.integer.value[0] ? true : false;
23881
23882 q6common_update_instance_id_support(supported);
23883 return 0;
23884}
23885
23886static int msm_routing_instance_id_support_get(
23887 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23888{
23889 bool supported = false;
23890
23891 supported = q6common_is_instance_id_supported();
23892 ucontrol->value.integer.value[0] = supported ? 1 : 0;
23893
23894 return 0;
23895}
23896
23897static const struct snd_kcontrol_new
23898 msm_routing_feature_support_mixer_controls[] = {
23899 {
23900 .access = SNDRV_CTL_ELEM_ACCESS_READ |
23901 SNDRV_CTL_ELEM_ACCESS_WRITE,
23902 .info = msm_routing_instance_id_support_info,
23903 .name = "Instance ID Support",
23904 .put = msm_routing_instance_id_support_put,
23905 .get = msm_routing_instance_id_support_get,
23906 },
23907};
23908
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023909static const struct snd_pcm_ops msm_routing_pcm_ops = {
23910 .hw_params = msm_pcm_routing_hw_params,
23911 .close = msm_pcm_routing_close,
23912 .prepare = msm_pcm_routing_prepare,
23913};
23914
23915/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080023916static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023917{
Meng Wangee084a02018-09-04 16:11:58 +080023918 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023919 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080023920 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023921 ARRAY_SIZE(intercon));
23922
Meng Wangee084a02018-09-04 16:11:58 +080023923 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023924
Meng Wangee084a02018-09-04 16:11:58 +080023925 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023926 ARRAY_SIZE(lsm_controls));
23927
Meng Wangee084a02018-09-04 16:11:58 +080023928 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023929 ARRAY_SIZE(aanc_slim_0_rx_mux));
23930
Meng Wangee084a02018-09-04 16:11:58 +080023931 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053023932 ARRAY_SIZE(aanc_noise_level));
23933
Meng Wangee084a02018-09-04 16:11:58 +080023934 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023935 ARRAY_SIZE(msm_voc_session_controls));
23936
Meng Wangee084a02018-09-04 16:11:58 +080023937 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023938 ARRAY_SIZE(app_type_cfg_controls));
23939
Meng Wangee084a02018-09-04 16:11:58 +080023940 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023941 ARRAY_SIZE(lsm_app_type_cfg_controls));
23942
Meng Wangee084a02018-09-04 16:11:58 +080023943 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070023944 ARRAY_SIZE(module_cfg_controls));
23945
Meng Wangee084a02018-09-04 16:11:58 +080023946 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023947 stereo_to_custom_stereo_controls,
23948 ARRAY_SIZE(stereo_to_custom_stereo_controls));
23949
Meng Wangee084a02018-09-04 16:11:58 +080023950 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023951 ARRAY_SIZE(ec_ref_param_controls));
23952
Meng Wangee084a02018-09-04 16:11:58 +080023953 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023954 ARRAY_SIZE(channel_mixer_controls));
23955
Meng Wangee084a02018-09-04 16:11:58 +080023956 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023957
Meng Wangee084a02018-09-04 16:11:58 +080023958 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023959
Meng Wangee084a02018-09-04 16:11:58 +080023960 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023961
Meng Wangee084a02018-09-04 16:11:58 +080023962 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023963 use_ds1_or_ds2_controls,
23964 ARRAY_SIZE(use_ds1_or_ds2_controls));
23965
Meng Wangee084a02018-09-04 16:11:58 +080023966 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023967 device_pp_params_mixer_controls,
23968 ARRAY_SIZE(device_pp_params_mixer_controls));
23969
Meng Wangee084a02018-09-04 16:11:58 +080023970 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023971 msm_routing_be_dai_name_table_mixer_controls,
23972 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
23973
Meng Wangee084a02018-09-04 16:11:58 +080023974 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023975 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080023976 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023977 ARRAY_SIZE(adm_channel_config_controls));
23978
Meng Wangee084a02018-09-04 16:11:58 +080023979 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023980 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080023981 snd_soc_add_component_controls(component,
23982 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023983 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080023984 snd_soc_add_component_controls(
23985 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023986 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
23987
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023988 return 0;
23989}
23990
23991int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
23992{
23993 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
23994}
23995
23996void msm_routing_pcm_free(struct snd_pcm *pcm)
23997{
23998 msm_pcm_routing_hwdep_free(pcm);
23999}
24000
Meng Wangee084a02018-09-04 16:11:58 +080024001static struct snd_soc_component_driver msm_soc_routing_component = {
24002 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024003 .ops = &msm_routing_pcm_ops,
24004 .probe = msm_routing_probe,
24005 .pcm_new = msm_routing_pcm_new,
24006 .pcm_free = msm_routing_pcm_free,
24007};
24008
24009static int msm_routing_pcm_probe(struct platform_device *pdev)
24010{
24011
24012 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080024013 return snd_soc_register_component(&pdev->dev,
24014 &msm_soc_routing_component,
24015 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024016}
24017
24018static int msm_routing_pcm_remove(struct platform_device *pdev)
24019{
Meng Wangee084a02018-09-04 16:11:58 +080024020 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024021 return 0;
24022}
24023
24024static const struct of_device_id msm_pcm_routing_dt_match[] = {
24025 {.compatible = "qcom,msm-pcm-routing"},
24026 {}
24027};
24028MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
24029
24030static struct platform_driver msm_routing_pcm_driver = {
24031 .driver = {
24032 .name = "msm-pcm-routing",
24033 .owner = THIS_MODULE,
24034 .of_match_table = msm_pcm_routing_dt_match,
24035 },
24036 .probe = msm_routing_pcm_probe,
24037 .remove = msm_routing_pcm_remove,
24038};
24039
24040int msm_routing_check_backend_enabled(int fedai_id)
24041{
24042 int i;
24043
24044 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
24045 /* bad ID assigned in machine driver */
24046 pr_err("%s: bad MM ID\n", __func__);
24047 return 0;
24048 }
24049 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24050 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
24051 return msm_bedais[i].active;
24052 }
24053 return 0;
24054}
24055
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024056static int get_cal_type_index(int32_t cal_type)
24057{
24058 int ret = -EINVAL;
24059
24060 switch (cal_type) {
24061 case ADM_TOPOLOGY_CAL_TYPE:
24062 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
24063 break;
24064 case ADM_LSM_TOPOLOGY_CAL_TYPE:
24065 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
24066 break;
24067 default:
24068 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
24069 }
24070 return ret;
24071}
24072
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024073static int msm_routing_set_cal(int32_t cal_type,
24074 size_t data_size, void *data)
24075{
24076 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024077 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024078 pr_debug("%s\n", __func__);
24079
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024080 cal_index = get_cal_type_index(cal_type);
24081 if (cal_index < 0) {
24082 pr_err("%s: Could not get cal index %d\n",
24083 __func__, cal_index);
24084 ret = -EINVAL;
24085 goto done;
24086 }
24087
24088 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024089 if (ret < 0) {
24090 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
24091 __func__, ret, cal_type);
24092 ret = -EINVAL;
24093 goto done;
24094 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024095 /* Pre-load if it is ADM topology */
24096 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
24097 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
24098 msm_routing_load_topology(data_size, data);
24099 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024100done:
24101 return ret;
24102}
24103
24104static void msm_routing_delete_cal_data(void)
24105{
24106 pr_debug("%s\n", __func__);
24107
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024108 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024109}
24110
24111static int msm_routing_init_cal_data(void)
24112{
24113 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024114 struct cal_type_info cal_type_info[] = {
24115 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024116 {NULL, NULL, NULL,
24117 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024118 {NULL, NULL, cal_utils_match_buf_num} },
24119
24120 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
24121 {NULL, NULL, NULL,
24122 msm_routing_set_cal, NULL, NULL} },
24123 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024124 };
24125 pr_debug("%s\n", __func__);
24126
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024127 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
24128 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024129 if (ret < 0) {
24130 pr_err("%s: could not create cal type!\n",
24131 __func__);
24132 ret = -EINVAL;
24133 goto err;
24134 }
24135
24136 return ret;
24137err:
24138 msm_routing_delete_cal_data();
24139 return ret;
24140}
24141
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053024142int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024143{
24144 mutex_init(&routing_lock);
24145 if (msm_routing_init_cal_data())
24146 pr_err("%s: could not init cal data!\n", __func__);
24147
24148 afe_set_routing_callback(
24149 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
24150
24151 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24152 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
24153
24154 return platform_driver_register(&msm_routing_pcm_driver);
24155}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024156
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053024157void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024158{
24159 msm_routing_delete_cal_data();
24160 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24161 mutex_destroy(&routing_lock);
24162 platform_driver_unregister(&msm_routing_pcm_driver);
24163}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024164
24165MODULE_DESCRIPTION("MSM routing platform driver");
24166MODULE_LICENSE("GPL v2");