blob: a671639d9be2f947d08278e3869094dc7672ce5e [file] [log] [blame]
Meng Wang43bbb872018-12-10 12:32:05 +08001// SPDX-License-Identifier: GPL-2.0-only
Vignesh Kulothungan5c109922018-01-24 17:36:18 -08002/* Copyright (c) 2012-2018, 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;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053082
83#define WEIGHT_0_DB 0x4000
84/* all the FEs which can support channel mixer */
85static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
86/* input BE for each FE */
87static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
88
89enum {
90 MADNONE,
91 MADAUDIO,
92 MADBEACON,
93 MADULTRASOUND,
94 MADSWAUDIO,
95};
96
97#define ADM_LSM_PORT_INDEX 9
98
99#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
100#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
101#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
102#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
103#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
104#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
105#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
106#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
107#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
108#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530109#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
110#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530111#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530112#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530113
114#define LSM_FUNCTION_TEXT "LSM Function"
115static const char * const lsm_port_text[] = {
116 "None",
117 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
118 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
119 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530120 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530121 TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530122};
123
124struct msm_pcm_route_bdai_pp_params {
125 u16 port_id; /* AFE port ID */
126 unsigned long pp_params_config;
127 bool mute_on;
128 int latency;
129};
130
131static struct msm_pcm_route_bdai_pp_params
132 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
133 {HDMI_RX, 0, 0, 0},
134 {DISPLAY_PORT_RX, 0, 0, 0},
135};
136
137/*
138 * The be_dai_name_table is passed to HAL so that it can specify the
139 * BE ID for the BE it wants to enable based on the name. Thus there
140 * is a matching table and structure in HAL that need to be updated
141 * if any changes to these are made.
142 */
143struct msm_pcm_route_bdai_name {
144 unsigned int be_id;
145 char be_name[LPASS_BE_NAME_MAX_LENGTH];
146};
147static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
148
149static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
150 int fe_id);
151
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700152static void msm_routing_load_topology(size_t data_size, void *data);
153static void msm_routing_unload_topology(uint32_t topology_id);
154
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530155static int msm_routing_get_bit_width(unsigned int format)
156{
157 int bit_width;
158
159 switch (format) {
160 case SNDRV_PCM_FORMAT_S32_LE:
161 bit_width = 32;
162 break;
163 case SNDRV_PCM_FORMAT_S24_LE:
164 case SNDRV_PCM_FORMAT_S24_3LE:
165 bit_width = 24;
166 break;
167 case SNDRV_PCM_FORMAT_S16_LE:
168 default:
169 bit_width = 16;
170 }
171 return bit_width;
172}
173
174static bool msm_is_resample_needed(int input_sr, int output_sr)
175{
176 bool rc = false;
177
178 if (input_sr != output_sr)
179 rc = true;
180
181 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
182 (rc ? "oh yes" : "not really"),
183 input_sr, output_sr);
184
185 return rc;
186}
187
188static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
189 int channels)
190{
191 int rc = 0;
192
193 switch (topology) {
194 case SRS_TRUMEDIA_TOPOLOGY_ID:
195 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
196 msm_dts_srs_tm_init(port_id, copp_idx);
197 break;
198 case DS2_ADM_COPP_TOPOLOGY_ID:
199 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
200 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
201 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
202 is_custom_stereo_on);
203 if (rc < 0)
204 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
205 __func__, topology, port_id,
206 is_custom_stereo_on, rc);
207 break;
208 case DOLBY_ADM_COPP_TOPOLOGY_ID:
209 if (is_ds2_on) {
210 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
211 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
212 is_custom_stereo_on);
213 if (rc < 0)
214 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
215 __func__, topology, port_id, rc);
216 } else {
217 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
218 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
219 is_custom_stereo_on);
220 if (rc < 0)
221 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
222 __func__, topology, port_id, rc);
223 }
224 break;
225 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
226 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
227 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
228 if (rc < 0)
229 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
230 __func__, topology, port_id, copp_idx, rc);
231 break;
232 default:
233 /* custom topology specific feature param handlers */
234 break;
235 }
236}
237
238static void msm_pcm_routing_deinit_pp(int port_id, int topology)
239{
240 switch (topology) {
241 case SRS_TRUMEDIA_TOPOLOGY_ID:
242 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
243 msm_dts_srs_tm_deinit(port_id);
244 break;
245 case DS2_ADM_COPP_TOPOLOGY_ID:
246 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
247 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
248 msm_ds2_dap_deinit(port_id);
249 break;
250 case DOLBY_ADM_COPP_TOPOLOGY_ID:
251 if (is_ds2_on) {
252 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
253 msm_ds2_dap_deinit(port_id);
254 } else {
255 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
256 msm_dolby_dap_deinit(port_id);
257 }
258 break;
259 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
260 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
261 msm_qti_pp_asphere_deinit(port_id);
262 break;
263 default:
264 /* custom topology specific feature deinit handlers */
265 break;
266 }
267}
268
269static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
270 int path_type, int perf_mode)
271{
272 int itr = 0, rc = 0;
273
274 if ((path_type == ADM_PATH_PLAYBACK) &&
275 (perf_mode == LEGACY_PCM_MODE) &&
276 is_custom_stereo_on) {
277 for (itr = 0; itr < payload.num_copps; itr++) {
278 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
279 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
280 continue;
281 }
282
283 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
284 payload.port_id[itr],
285 payload.copp_idx[itr],
286 payload.session_id,
287 Q14_GAIN_ZERO_POINT_FIVE,
288 Q14_GAIN_ZERO_POINT_FIVE,
289 Q14_GAIN_ZERO_POINT_FIVE,
290 Q14_GAIN_ZERO_POINT_FIVE);
291 if (rc < 0)
292 pr_err("%s: err setting custom stereo\n",
293 __func__);
294 }
295 }
296}
297
298#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
299struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530300 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
301 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
302 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
303 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
304 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
305 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
306 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
307 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
308 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
309 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530310 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530311 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530312 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530313 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530314 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530315 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530316 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530317 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530318 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530319 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530320 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530321 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530322 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530323 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530324 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530325 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
326 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
327 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
328 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
329 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
330 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
331 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
332 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
333 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
334 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
335 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
336 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
337 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
338 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
339 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
340 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
341 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
342 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
343 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
344 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
345 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
346 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
347 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530348 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530349 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530350 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530351 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530352 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530353 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530354 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530355 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530356 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530357 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530358 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530359 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530360 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530361 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530362 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530363 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530364 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530365 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530366 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530367 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530368 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530369 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200370 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530371 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530372 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530373 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530374 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530375 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530376 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530377 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530378 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530379 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530380 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530381 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530382 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530383 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530384 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530385 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530386 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530387 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530388 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530389 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530390 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530391 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530392 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530393 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530394 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530395 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530396 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530397 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530398 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530399 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530400 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530401 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530402 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530403 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530404 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530405 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530406 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530407 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530408 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530409 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530410 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530411 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530412 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530413 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530414 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530415 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530416 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530417 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530418 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530419 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530420 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530421 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530422 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530423 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530424 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530425 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530426 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530427 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530428 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530429 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530430 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530431 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530432 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530433 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530434 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530435 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530436 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530437 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530438 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530439 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530440 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530441 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530442 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530443 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530444 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530445 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530446 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530447 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530448 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530449 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530450 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530451 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530452 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530453 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530454 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530455 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530456 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530457 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530458 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530459 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530460 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530461 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530462 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530463 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530464 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530465 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530466 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530467 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530468 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530469 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530470 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530471 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530472 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530473 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530474 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530475 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530476 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530477 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530478 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530479 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530480 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530481 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530482 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530483 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530484 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530485 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530486 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530487 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530488 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530489 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530490 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530491 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530492 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530493 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530494 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530495 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530496 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530497 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530498 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530499 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530500 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530501 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530502 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530503 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530504 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530505 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530506 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530507 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530508 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530509 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530510 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530511 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530512 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530513 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530514 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530515 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530516 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530517 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530518 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530519 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530520 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530521 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530522 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530523 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530524 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530525 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530526 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530527 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530528 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530529 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530530 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530531 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530532 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530533 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530534 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530535 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530536 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530537 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530538 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530539 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530540 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530541 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530542 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530543 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530544 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530545 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530546 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530547 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700548 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530549 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530550 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530551 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530552 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530553 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530554 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530555 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530556 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530557 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530558 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530559 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530560 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530561 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530562 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530563 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530564 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530565 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530566 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530567 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530568 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530569 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530570 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530571 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530572 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530573 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530574 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530575 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530576 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530577 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530578 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530579 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530580 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530581 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530582 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530583 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530584 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530585 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530586 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530587 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530588 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200589 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
590 LPASS_BE_SEN_AUXPCM_RX},
591 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
592 LPASS_BE_SEN_AUXPCM_TX},
593 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
594 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530595 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530596 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530597 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530598 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530599 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530600 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530601 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530602 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530603 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530604 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530605 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530606 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530607 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530608 LPASS_BE_VA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530609 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530610 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530611 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530612 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530613 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530614 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530615 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530616 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530617 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530618 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530619 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530620 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530621 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530622 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530623 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530624 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530625 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530626 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530627 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530628 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530629 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530630 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530631 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530632 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530633 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530634 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530635 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530636 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530637 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200638 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530639 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200640 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530641 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200642 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530643 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
644 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530645 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530646};
647
648/* Track ASM playback & capture sessions of DAI
649 * Track LSM listen sessions
650 */
651static struct msm_pcm_routing_fdai_data
652 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
653 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530654 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
655 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530656 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530657 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
658 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530659 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530660 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
661 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530662 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530663 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
664 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530665 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530666 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
667 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530668 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530669 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
670 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530671 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530672 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
673 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530674 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530675 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
676 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530677 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530678 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
679 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530680 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530681 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
682 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530683 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530684 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
685 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530686 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530687 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
688 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530689 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530690 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
691 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530692 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530693 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
694 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530695 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530696 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
697 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530698 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530699 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
700 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530701 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530702 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
703 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530704 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530705 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
706 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530707 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530708 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
709 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530710 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530711 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
712 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700713 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530714 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
715 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530716 /* MULTIMEDIA26 */
717 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
718 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
719 /* MULTIMEDIA27 */
720 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
721 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530722 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530723 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
724 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530725 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530726 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
727 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530728 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530729 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
730 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530731 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530732 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
733 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530734 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530735 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
736 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530737 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530738 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
739 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530740 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530741 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
742 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530743 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530744 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
745 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530746 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530747 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
748 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530749 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530750 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
751 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530752 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530753 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
754 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530755 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530756 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
757 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530758 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530759 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
760 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530761 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530762 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
763 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530764 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530765 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
766 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530767 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530768 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
769 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530770 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530771 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
772 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530773 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530774 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
775 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530776 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530777 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
778 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530779 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530780 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
781 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530782};
783
784static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
785 [MSM_BACKEND_DAI_MAX];
786static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
787static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
788static struct msm_pcm_stream_app_type_cfg
789 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
790
791static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
792
Florian Pfister522073c2018-09-26 15:39:15 +0200793/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530794void msm_pcm_routing_get_bedai_info(int be_idx,
795 struct msm_pcm_routing_bdai_data *be_dai)
796{
797 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
798 memcpy(be_dai, &msm_bedais[be_idx],
799 sizeof(struct msm_pcm_routing_bdai_data));
800}
801
Florian Pfister522073c2018-09-26 15:39:15 +0200802/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530803void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
804 struct msm_pcm_routing_fdai_data *fe_dai)
805{
806 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
807 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
808 sizeof(struct msm_pcm_routing_fdai_data));
809}
810
811void msm_pcm_routing_acquire_lock(void)
812{
813 mutex_lock(&routing_lock);
814}
815
816void msm_pcm_routing_release_lock(void)
817{
818 mutex_unlock(&routing_lock);
819}
820
821static int msm_pcm_routing_get_app_type_idx(int app_type)
822{
823 int idx;
824
825 pr_debug("%s: app_type: %d\n", __func__, app_type);
826 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
827 if (app_type_cfg[idx].app_type == app_type)
828 return idx;
829 }
830 pr_info("%s: App type not available, fallback to default\n", __func__);
831 return 0;
832}
833
834static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
835{
836 int idx;
837
838 pr_debug("%s: app_type: %d\n", __func__, app_type);
839 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
840 if (lsm_app_type_cfg[idx].app_type == app_type)
841 return idx;
842 }
843 pr_debug("%s: App type not available, fallback to default\n", __func__);
844 return 0;
845}
846
847static bool is_mm_lsm_fe_id(int fe_id)
848{
849 bool rc = true;
850
851 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
852 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
853 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
854 rc = false;
855 }
856 return rc;
857}
858
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700859/*
860 * msm_pcm_routing_send_chmix_cfg:
861 * send the channel mixer command to mix the input channels
862 * into output channels.
863 *
864 * @fe_id: front end id
865 * @ip_channel_cnt: input channel count
866 * @op_channel_cnt: output channel count
867 * @ch_wght_coeff: channel weight co-efficients for channel mixing
868 * @session_type: indicates session is of type TX or RX
869 * @stream_type: indicates either Audio or Listen stream type
870 */
871int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
872 int op_channel_cnt, int *ch_wght_coeff,
873 int session_type, int stream_type)
874{
875
876 int rc = 0, idx = 0;
877 int be_index = 0, port_id;
878 unsigned int session_id = 0;
879
880 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
881 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
882 stream_type);
883 if (!is_mm_lsm_fe_id(fe_id)) {
884 /* bad ID assigned in machine driver */
885 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
886 return -EINVAL;
887 }
888
889 if (ch_wght_coeff == NULL) {
890 pr_err("%s: Null channel weightage coefficients passed\n",
891 __func__);
892 return -EINVAL;
893 }
894
895 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
896 port_id = msm_bedais[be_index].port_id;
897 if (!msm_bedais[be_index].active ||
898 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
899 continue;
900
901 session_id = fe_dai_map[fe_id][session_type].strm_id;
902
903 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
904 unsigned long copp =
905 session_copp_map[fe_id][session_type][be_index];
906 if (!test_bit(idx, &copp))
907 continue;
908 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
909 session_id, ip_channel_cnt,
910 op_channel_cnt, ch_wght_coeff,
911 session_type, stream_type);
912 if (rc < 0)
913 pr_err("%s: err setting channel mix config\n",
914 __func__);
915 }
916 }
917
918 return 0;
919}
920EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
921
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530922int msm_pcm_routing_reg_stream_app_type_cfg(
923 int fedai_id, int session_type, int be_id,
924 struct msm_pcm_stream_app_type_cfg *cfg_data)
925{
926 int ret = 0;
927
928 if (cfg_data == NULL) {
929 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
930 ret = -EINVAL;
931 goto done;
932 }
933
934 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
935 __func__, fedai_id, session_type, be_id,
936 cfg_data->app_type, cfg_data->acdb_dev_id,
937 cfg_data->sample_rate);
938
939 if (!is_mm_lsm_fe_id(fedai_id)) {
940 pr_err("%s: Invalid machine driver ID %d\n",
941 __func__, fedai_id);
942 ret = -EINVAL;
943 goto done;
944 }
945 if (session_type != SESSION_TYPE_RX &&
946 session_type != SESSION_TYPE_TX) {
947 pr_err("%s: Invalid session type %d\n",
948 __func__, session_type);
949 ret = -EINVAL;
950 goto done;
951 }
952 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
953 pr_err("%s: Received out of bounds be_id %d\n",
954 __func__, be_id);
955 ret = -EINVAL;
956 goto done;
957 }
958
959 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
960
961 /*
962 * Store the BE ID of the configuration information set as the latest so
963 * the get mixer control knows what to return.
964 */
965 last_be_id_configured[fedai_id][session_type] = be_id;
966
967done:
968 return ret;
969}
970EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
971
972/**
973 * msm_pcm_routing_get_stream_app_type_cfg
974 *
975 * Receives fedai_id, session_type, be_id, and populates app_type,
976 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
977 * -EINVAL and does not alter passed values.
978 *
979 * fedai_id - Passed value, front end ID for which app type config is wanted
980 * session_type - Passed value, session type for which app type config
981 * is wanted
982 * be_id - Returned value, back end device id the app type config data is for
983 * cfg_data - Returned value, configuration data used by app type config
984 */
985int msm_pcm_routing_get_stream_app_type_cfg(
986 int fedai_id, int session_type, int *bedai_id,
987 struct msm_pcm_stream_app_type_cfg *cfg_data)
988{
989 int be_id;
990 int ret = 0;
991
992 if (bedai_id == NULL) {
993 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
994 ret = -EINVAL;
995 goto done;
996 } else if (cfg_data == NULL) {
997 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
998 ret = -EINVAL;
999 goto done;
1000 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1001 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1002 ret = -EINVAL;
1003 goto done;
1004 } else if (session_type != SESSION_TYPE_RX &&
1005 session_type != SESSION_TYPE_TX) {
1006 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1007 ret = -EINVAL;
1008 goto done;
1009 }
1010
1011 be_id = last_be_id_configured[fedai_id][session_type];
1012 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1013 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1014 ret = -EINVAL;
1015 goto done;
1016 }
1017
1018 *bedai_id = be_id;
1019 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1020 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1021 __func__, fedai_id, session_type, *bedai_id,
1022 cfg_data->app_type, cfg_data->acdb_dev_id,
1023 cfg_data->sample_rate);
1024done:
1025 return ret;
1026}
1027EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1028
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301029static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1030 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301031{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301032 struct list_head *ptr, *next;
1033 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301034 pr_debug("%s\n", __func__);
1035
1036 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301037 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301038
1039 cal_block = list_entry(ptr,
1040 struct cal_block_data, list);
1041
Vikram Panduranga770b8382017-09-27 12:17:36 -07001042 if (cal_utils_is_cal_stale(cal_block))
1043 continue;
1044
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301045 if (((struct audio_cal_info_adm_top *)cal_block
1046 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301047 return cal_block;
1048 }
1049 }
1050 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1051 return NULL;
1052}
1053
1054static struct cal_block_data *msm_routing_find_topology(int path,
1055 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301056 int acdb_id,
1057 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301058{
1059 struct list_head *ptr, *next;
1060 struct cal_block_data *cal_block = NULL;
1061 struct audio_cal_info_adm_top *cal_info;
1062
1063 pr_debug("%s\n", __func__);
1064
1065 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301066 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301067
1068 cal_block = list_entry(ptr,
1069 struct cal_block_data, list);
1070
Vikram Panduranga770b8382017-09-27 12:17:36 -07001071 if (cal_utils_is_cal_stale(cal_block))
1072 continue;
1073
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301074 cal_info = (struct audio_cal_info_adm_top *)
1075 cal_block->cal_info;
1076 if ((cal_info->path == path) &&
1077 (cal_info->app_type == app_type) &&
1078 (cal_info->acdb_id == acdb_id)) {
1079 return cal_block;
1080 }
1081 }
1082 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1083 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001084 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301085}
1086
Vikram Panduranga770b8382017-09-27 12:17:36 -07001087/*
1088 * Retrieving cal_block will mark cal_block as stale.
1089 * Hence it cannot be reused or resent unless the flag
1090 * is reset.
1091 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301092static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1093 int be_id)
1094{
1095 int topology = NULL_COPP_TOPOLOGY;
1096 struct cal_block_data *cal_block = NULL;
1097 int app_type = 0, acdb_dev_id = 0;
1098
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301099 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1100 __func__, fedai_id, session_type, be_id);
1101
1102 if (cal_data == NULL)
1103 goto done;
1104
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301105 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1106 acdb_dev_id =
1107 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1108
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301109 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301110 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301111 acdb_dev_id,
1112 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001113 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301114 topology = ((struct audio_cal_info_adm_top *)
1115 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001116 cal_utils_mark_cal_used(cal_block);
1117 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1118 } else {
1119 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301120
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301121 pr_debug("%s: Check for LSM topology\n", __func__);
1122 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1123 cal_block = msm_routing_find_topology(session_type, app_type,
1124 acdb_dev_id,
1125 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001126 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301127 topology = ((struct audio_cal_info_adm_top *)
1128 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001129 cal_utils_mark_cal_used(cal_block);
1130 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301131 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1132 }
1133
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301134done:
1135 pr_debug("%s: Using topology %d\n", __func__, topology);
1136 return topology;
1137}
1138
1139static uint8_t is_be_dai_extproc(int be_dai)
1140{
1141 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1142 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1143 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1144 return 1;
1145 else
1146 return 0;
1147}
1148
1149static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1150 int path_type, int perf_mode,
1151 uint32_t passthr_mode)
1152{
1153 int i, port_type, j, num_copps = 0;
1154 struct route_payload payload;
1155
1156 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1157 path_type == ADM_PATH_COMPRESSED_RX) ?
1158 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1159
1160 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1161 if (!is_be_dai_extproc(i) &&
1162 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1163 (msm_bedais[i].active) &&
1164 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1165 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1166 unsigned long copp =
1167 session_copp_map[fedai_id][sess_type][i];
1168 if (test_bit(j, &copp)) {
1169 payload.port_id[num_copps] =
1170 msm_bedais[i].port_id;
1171 payload.copp_idx[num_copps] = j;
1172 payload.app_type[num_copps] =
1173 fe_dai_app_type_cfg
1174 [fedai_id][sess_type][i]
1175 .app_type;
1176 payload.acdb_dev_id[num_copps] =
1177 fe_dai_app_type_cfg
1178 [fedai_id][sess_type][i]
1179 .acdb_dev_id;
1180 payload.sample_rate[num_copps] =
1181 fe_dai_app_type_cfg
1182 [fedai_id][sess_type][i]
1183 .sample_rate;
1184 num_copps++;
1185 }
1186 }
1187 }
1188 }
1189
1190 if (num_copps) {
1191 payload.num_copps = num_copps;
1192 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1193 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1194 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1195 }
1196}
1197
1198void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1199 int stream_type)
1200{
1201 int i, session_type, path_type, port_type;
1202 u32 mode = 0;
1203
1204 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1205 /* bad ID assigned in machine driver */
1206 pr_err("%s: bad MM ID\n", __func__);
1207 return;
1208 }
1209
1210 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1211 session_type = SESSION_TYPE_RX;
1212 path_type = ADM_PATH_PLAYBACK;
1213 port_type = MSM_AFE_PORT_TYPE_RX;
1214 } else {
1215 session_type = SESSION_TYPE_TX;
1216 path_type = ADM_PATH_LIVE_REC;
1217 port_type = MSM_AFE_PORT_TYPE_TX;
1218 }
1219
1220 mutex_lock(&routing_lock);
1221
1222 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1223 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1224 if (!is_be_dai_extproc(i) &&
1225 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1226 (msm_bedais[i].active) &&
1227 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1228 mode = afe_get_port_type(msm_bedais[i].port_id);
1229 adm_connect_afe_port(mode, dspst_id,
1230 msm_bedais[i].port_id);
1231 break;
1232 }
1233 }
1234 mutex_unlock(&routing_lock);
1235}
1236
1237static bool route_check_fe_id_adm_support(int fe_id)
1238{
1239 bool rc = true;
1240
1241 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1242 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1243 /* fe id is listen while port is set to afe */
1244 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1245 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1246 __func__, fe_id, lsm_port_index);
1247 rc = false;
1248 }
1249 }
1250
1251 return rc;
1252}
1253
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001254/*
1255 * msm_pcm_routing_get_pp_ch_cnt:
1256 * Read the processed channel count
1257 *
1258 * @fe_id: Front end ID
1259 * @session_type: Inidicates RX or TX session type
1260 */
1261int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1262{
1263 struct msm_pcm_stream_app_type_cfg cfg_data;
1264 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301265 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001266
1267 memset(&cfg_data, 0, sizeof(cfg_data));
1268
1269 if (!is_mm_lsm_fe_id(fe_id)) {
1270 pr_err("%s: bad MM ID\n", __func__);
1271 return -EINVAL;
1272 }
1273
1274 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1275 &be_id, &cfg_data);
1276 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301277 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001278 return ret;
1279 }
1280
1281 app_type = cfg_data.app_type;
1282 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1283 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1284}
1285EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1286
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301287int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1288 int dspst_id, int stream_type,
1289 uint32_t passthr_mode)
1290{
1291 int i, j, session_type, path_type, port_type, topology;
1292 int num_copps = 0;
1293 struct route_payload payload;
1294 u32 channels, sample_rate;
1295 u16 bit_width = 16;
1296 bool is_lsm;
1297
1298 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1299 __func__, fe_id, perf_mode, dspst_id,
1300 stream_type, passthr_mode);
1301 if (!is_mm_lsm_fe_id(fe_id)) {
1302 /* bad ID assigned in machine driver */
1303 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1304 return -EINVAL;
1305 }
1306
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301307 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1308 session_type = SESSION_TYPE_RX;
1309 if (passthr_mode != LEGACY_PCM)
1310 path_type = ADM_PATH_COMPRESSED_RX;
1311 else
1312 path_type = ADM_PATH_PLAYBACK;
1313 port_type = MSM_AFE_PORT_TYPE_RX;
1314 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1315 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301316 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301317 path_type = ADM_PATH_COMPRESSED_TX;
1318 else
1319 path_type = ADM_PATH_LIVE_REC;
1320 port_type = MSM_AFE_PORT_TYPE_TX;
1321 } else {
1322 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1323 return -EINVAL;
1324 }
1325
1326 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1327 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1328 mutex_lock(&routing_lock);
1329
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301330 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301331 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1332 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1333 if (!route_check_fe_id_adm_support(fe_id)) {
1334 /* ignore adm open if not supported for fe_id */
1335 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1336 mutex_unlock(&routing_lock);
1337 return 0;
1338 }
1339
1340 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301341 /* re-enable EQ if active */
1342 msm_qti_pp_send_eq_values(fe_id);
1343 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301344 if (!is_be_dai_extproc(i) &&
1345 (afe_get_port_type(msm_bedais[i].port_id) ==
1346 port_type) &&
1347 (msm_bedais[i].active) &&
1348 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1349 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1350
1351 /*
1352 * check if ADM needs to be configured with different
1353 * channel mapping than backend
1354 */
1355 if (!msm_bedais[i].adm_override_ch)
1356 channels = msm_bedais[i].channel;
1357 else
1358 channels = msm_bedais[i].adm_override_ch;
1359
1360 bit_width = msm_routing_get_bit_width(
1361 msm_bedais[i].format);
1362 app_type =
1363 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1364 if (app_type && is_lsm) {
1365 app_type_idx =
1366 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1367 sample_rate =
1368 fe_dai_app_type_cfg[fe_id][session_type][i]
1369 .sample_rate;
1370 bit_width =
1371 lsm_app_type_cfg[app_type_idx].bit_width;
1372 } else if (app_type) {
1373 app_type_idx =
1374 msm_pcm_routing_get_app_type_idx(
1375 app_type);
1376 sample_rate =
1377 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1378 bit_width =
1379 app_type_cfg[app_type_idx].bit_width;
1380 } else {
1381 sample_rate = msm_bedais[i].sample_rate;
1382 }
1383 acdb_dev_id =
1384 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1385 topology = msm_routing_get_adm_topology(fe_id,
1386 session_type,
1387 i);
1388 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1389 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001390 COMPRESSED_PASSTHROUGH_GEN)
1391 || (passthr_mode ==
1392 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301393 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1394 pr_debug("%s: Before adm open topology %d\n", __func__,
1395 topology);
1396
1397 copp_idx =
1398 adm_open(msm_bedais[i].port_id,
1399 path_type, sample_rate, channels,
1400 topology, perf_mode, bit_width,
1401 app_type, acdb_dev_id);
1402 if ((copp_idx < 0) ||
1403 (copp_idx >= MAX_COPPS_PER_PORT)) {
1404 pr_err("%s:adm open failed coppid:%d\n",
1405 __func__, copp_idx);
1406 mutex_unlock(&routing_lock);
1407 return -EINVAL;
1408 }
1409 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1410 __func__, fe_id, session_type, i);
1411 set_bit(copp_idx,
1412 &session_copp_map[fe_id][session_type][i]);
1413
1414 if (msm_is_resample_needed(
1415 sample_rate,
1416 msm_bedais[i].sample_rate))
1417 adm_copp_mfc_cfg(
1418 msm_bedais[i].port_id, copp_idx,
1419 msm_bedais[i].sample_rate);
1420
1421 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1422 unsigned long copp =
1423 session_copp_map[fe_id][session_type][i];
1424 if (test_bit(j, &copp)) {
1425 payload.port_id[num_copps] =
1426 msm_bedais[i].port_id;
1427 payload.copp_idx[num_copps] = j;
1428 payload.app_type[num_copps] =
1429 fe_dai_app_type_cfg
1430 [fe_id][session_type][i]
1431 .app_type;
1432 payload.acdb_dev_id[num_copps] =
1433 fe_dai_app_type_cfg
1434 [fe_id][session_type][i]
1435 .acdb_dev_id;
1436 payload.sample_rate[num_copps] =
1437 fe_dai_app_type_cfg
1438 [fe_id][session_type][i]
1439 .sample_rate;
1440 num_copps++;
1441 }
1442 }
1443 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001444 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301445 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301446 msm_routing_send_device_pp_params(
Ralf Herzc8701f72018-06-20 11:37:35 +02001447 msm_bedais[i].port_id,
1448 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301449 }
1450 }
1451 if (num_copps) {
1452 payload.num_copps = num_copps;
1453 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1454 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1455 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1456 }
1457 mutex_unlock(&routing_lock);
1458 return 0;
1459}
1460
1461static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1462{
1463 u32 session_id;
1464
1465 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301466 case MSM_FRONTEND_DAI_QCHAT:
1467 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1468 break;
1469 case MSM_FRONTEND_DAI_VOIP:
1470 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1471 break;
1472 case MSM_FRONTEND_DAI_VOICEMMODE1:
1473 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1474 break;
1475 case MSM_FRONTEND_DAI_VOICEMMODE2:
1476 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1477 break;
1478 default:
1479 session_id = 0;
1480 }
1481
1482 pr_debug("%s session_id 0x%x", __func__, session_id);
1483 return session_id;
1484}
1485
1486static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1487 int dspst_id, int stream_type)
1488{
1489 int copp_idx = 0;
1490 int sess_type = 0;
1491 int i = 0, j = 0, be_id;
1492 int ret = 0;
1493
1494 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1495 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1496 return 0;
1497 }
1498
1499 if (!(channel_mixer[fe_id].enable)) {
1500 pr_debug("%s: channel mixer not enabled for FE %d\n",
1501 __func__, fe_id);
1502 return 0;
1503 }
1504
1505 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1506 sess_type = SESSION_TYPE_RX;
1507 else
1508 sess_type = SESSION_TYPE_TX;
1509
1510 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1511 ++i) {
1512 be_id = channel_input[fe_id][i] - 1;
1513 channel_mixer[fe_id].input_channels[i] =
1514 msm_bedais[be_id].channel;
1515
1516 if ((msm_bedais[be_id].active) &&
1517 test_bit(fe_id,
1518 &msm_bedais[be_id].fe_sessions[0])) {
1519 unsigned long copp =
1520 session_copp_map[fe_id][sess_type][be_id];
1521 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1522 if (test_bit(j, &copp)) {
1523 copp_idx = j;
1524 break;
1525 }
1526 }
1527
1528 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1529 __func__,
1530 fe_id, be_id, msm_bedais[be_id].channel,
1531 copp_idx);
1532 ret = adm_programable_channel_mixer(
1533 msm_bedais[be_id].port_id,
1534 copp_idx, dspst_id, sess_type,
1535 channel_mixer + fe_id, i);
1536 }
1537 }
1538
1539 return ret;
1540}
1541
1542int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1543 int dspst_id, int stream_type)
1544{
1545 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1546 struct route_payload payload;
1547 u32 channels, sample_rate;
1548 uint16_t bits_per_sample = 16;
1549 uint32_t passthr_mode = LEGACY_PCM;
1550 int ret = 0;
1551
1552 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1553 /* bad ID assigned in machine driver */
1554 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1555 return -EINVAL;
1556 }
1557
1558 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1559 session_type = SESSION_TYPE_RX;
1560 path_type = ADM_PATH_PLAYBACK;
1561 port_type = MSM_AFE_PORT_TYPE_RX;
1562 } else {
1563 session_type = SESSION_TYPE_TX;
1564 path_type = ADM_PATH_LIVE_REC;
1565 port_type = MSM_AFE_PORT_TYPE_TX;
1566 }
1567
1568 mutex_lock(&routing_lock);
1569
1570 payload.num_copps = 0; /* only RX needs to use payload */
1571 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1572 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301573 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301574
1575 /* re-enable EQ if active */
1576 msm_qti_pp_send_eq_values(fedai_id);
1577 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1578 if (!is_be_dai_extproc(i) &&
1579 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1580 (msm_bedais[i].active) &&
1581 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1582 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1583 /*
1584 * check if ADM needs to be configured with different
1585 * channel mapping than backend
1586 */
1587 if (!msm_bedais[i].adm_override_ch)
1588 channels = msm_bedais[i].channel;
1589 else
1590 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301591
1592 bits_per_sample = msm_routing_get_bit_width(
1593 msm_bedais[i].format);
1594
1595 app_type =
1596 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1597 if (app_type) {
1598 app_type_idx =
1599 msm_pcm_routing_get_app_type_idx(app_type);
1600 sample_rate =
1601 fe_dai_app_type_cfg[fedai_id][session_type][i]
1602 .sample_rate;
1603 bits_per_sample =
1604 app_type_cfg[app_type_idx].bit_width;
1605 } else
1606 sample_rate = msm_bedais[i].sample_rate;
1607
1608 acdb_dev_id =
1609 fe_dai_app_type_cfg[fedai_id][session_type][i]
1610 .acdb_dev_id;
1611 topology = msm_routing_get_adm_topology(fedai_id,
1612 session_type,
1613 i);
1614 copp_idx = adm_open(msm_bedais[i].port_id, path_type,
1615 sample_rate, channels, topology,
1616 perf_mode, bits_per_sample,
1617 app_type, acdb_dev_id);
1618 if ((copp_idx < 0) ||
1619 (copp_idx >= MAX_COPPS_PER_PORT)) {
1620 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001621 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301622 mutex_unlock(&routing_lock);
1623 return -EINVAL;
1624 }
1625 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1626 __func__, fedai_id, session_type, i);
1627 set_bit(copp_idx,
1628 &session_copp_map[fedai_id][session_type][i]);
1629
1630 if (msm_is_resample_needed(
1631 sample_rate,
1632 msm_bedais[i].sample_rate))
1633 adm_copp_mfc_cfg(
1634 msm_bedais[i].port_id, copp_idx,
1635 msm_bedais[i].sample_rate);
1636
1637 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1638 unsigned long copp =
1639 session_copp_map[fedai_id][session_type][i];
1640 if (test_bit(j, &copp)) {
1641 payload.port_id[num_copps] =
1642 msm_bedais[i].port_id;
1643 payload.copp_idx[num_copps] = j;
1644 payload.app_type[num_copps] =
1645 fe_dai_app_type_cfg
1646 [fedai_id][session_type]
1647 [i].app_type;
1648 payload.acdb_dev_id[num_copps] =
1649 fe_dai_app_type_cfg
1650 [fedai_id][session_type]
1651 [i].acdb_dev_id;
1652 payload.sample_rate[num_copps] =
1653 fe_dai_app_type_cfg
1654 [fedai_id][session_type]
1655 [i].sample_rate;
1656 num_copps++;
1657 }
1658 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301659 if (perf_mode == LEGACY_PCM_MODE)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301660 msm_pcm_routing_cfg_pp(msm_bedais[i].port_id,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301661 copp_idx, topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301662 }
1663 }
1664 if (num_copps) {
1665 payload.num_copps = num_copps;
1666 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1667 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1668 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1669 }
1670
1671 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1672 dspst_id, stream_type);
1673 mutex_unlock(&routing_lock);
1674 return ret;
1675}
1676
1677int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1678 int dspst_id, int stream_type,
1679 struct msm_pcm_routing_evt event_info)
1680{
1681 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1682 stream_type)) {
1683 pr_err("%s: failed to reg phy stream\n", __func__);
1684 return -EINVAL;
1685 }
1686
1687 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1688 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1689 else
1690 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1691 return 0;
1692}
1693
1694void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1695{
1696 int i, port_type, session_type, path_type, topology;
1697 struct msm_pcm_routing_fdai_data *fdai;
1698
1699 if (!is_mm_lsm_fe_id(fedai_id)) {
1700 /* bad ID assigned in machine driver */
1701 pr_err("%s: bad MM ID\n", __func__);
1702 return;
1703 }
1704
1705 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1706 port_type = MSM_AFE_PORT_TYPE_RX;
1707 session_type = SESSION_TYPE_RX;
1708 path_type = ADM_PATH_PLAYBACK;
1709 } else {
1710 port_type = MSM_AFE_PORT_TYPE_TX;
1711 session_type = SESSION_TYPE_TX;
1712 path_type = ADM_PATH_LIVE_REC;
1713 }
1714
1715 mutex_lock(&routing_lock);
1716 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1717 if (!is_be_dai_extproc(i) &&
1718 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1719 (msm_bedais[i].active) &&
1720 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1721 int idx;
1722 unsigned long copp =
1723 session_copp_map[fedai_id][session_type][i];
1724 fdai = &fe_dai_map[fedai_id][session_type];
1725
1726 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1727 if (test_bit(idx, &copp))
1728 break;
1729
1730 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1731 pr_debug("%s: copp idx is invalid, exiting\n",
1732 __func__);
1733 continue;
1734 }
1735 topology = adm_get_topology_for_port_copp_idx(
1736 msm_bedais[i].port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001737 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301738 adm_close(msm_bedais[i].port_id, fdai->perf_mode, idx);
1739 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1740 __func__, copp, fedai_id, session_type, i);
1741 clear_bit(idx,
1742 &session_copp_map[fedai_id][session_type][i]);
1743 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1744 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1745 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301746 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301747 msm_pcm_routing_deinit_pp(msm_bedais[i].port_id,
1748 topology);
1749 }
1750 }
1751
1752 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1753 fe_dai_map[fedai_id][session_type].be_srate = 0;
1754 mutex_unlock(&routing_lock);
1755}
1756
1757/* Check if FE/BE route is set */
1758static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1759{
1760 bool rc = false;
1761
1762 if (!is_mm_lsm_fe_id(fe_id)) {
1763 /* recheck FE ID in the mixer control defined in this file */
1764 pr_err("%s: bad MM ID\n", __func__);
1765 return rc;
1766 }
1767
1768 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1769 rc = true;
1770
1771 return rc;
1772}
1773
1774static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1775{
1776 int session_type, path_type, topology;
1777 u32 channels, sample_rate;
1778 uint16_t bits_per_sample = 16;
1779 struct msm_pcm_routing_fdai_data *fdai;
1780 uint32_t passthr_mode;
1781 bool is_lsm;
1782
1783 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1784
1785 if (!is_mm_lsm_fe_id(val)) {
1786 /* recheck FE ID in the mixer control defined in this file */
1787 pr_err("%s: bad MM ID\n", __func__);
1788 return;
1789 }
1790
1791 if (!route_check_fe_id_adm_support(val)) {
1792 /* ignore adm open if not supported for fe_id */
1793 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1794 return;
1795 }
1796
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301797 session_type =
1798 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
1799 SESSION_TYPE_RX : SESSION_TYPE_TX;
1800 fdai = &fe_dai_map[val][session_type];
1801 passthr_mode = fdai->passthr_mode;
1802 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301803 if (passthr_mode != LEGACY_PCM)
1804 path_type = ADM_PATH_COMPRESSED_RX;
1805 else
1806 path_type = ADM_PATH_PLAYBACK;
1807 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02001808 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301809 path_type = ADM_PATH_COMPRESSED_TX;
1810 else
1811 path_type = ADM_PATH_LIVE_REC;
1812 }
1813 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1814 (val <= MSM_FRONTEND_DAI_LSM8);
1815
1816 mutex_lock(&routing_lock);
1817 if (set) {
1818 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1819 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1820 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1821 voc_start_playback(set, msm_bedais[reg].port_id);
1822
1823 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301824 if (msm_bedais[reg].active && fdai->strm_id !=
1825 INVALID_SESSION) {
1826 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1827 /*
1828 * check if ADM needs to be configured with different
1829 * channel mapping than backend
1830 */
1831 if (!msm_bedais[reg].adm_override_ch)
1832 channels = msm_bedais[reg].channel;
1833 else
1834 channels = msm_bedais[reg].adm_override_ch;
1835 if (session_type == SESSION_TYPE_TX &&
1836 fdai->be_srate &&
1837 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1838 pr_debug("%s: flush strm %d diff BE rates\n",
1839 __func__, fdai->strm_id);
1840
1841 if (fdai->event_info.event_func)
1842 fdai->event_info.event_func(
1843 MSM_PCM_RT_EVT_BUF_RECFG,
1844 fdai->event_info.priv_data);
1845 fdai->be_srate = 0; /* might not need it */
1846 }
1847
1848 bits_per_sample = msm_routing_get_bit_width(
1849 msm_bedais[reg].format);
1850
1851 app_type =
1852 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1853 if (app_type && is_lsm) {
1854 app_type_idx =
1855 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1856 sample_rate =
1857 fe_dai_app_type_cfg[val][session_type][reg]
1858 .sample_rate;
1859 bits_per_sample =
1860 lsm_app_type_cfg[app_type_idx].bit_width;
1861 } else if (app_type) {
1862 app_type_idx =
1863 msm_pcm_routing_get_app_type_idx(app_type);
1864 sample_rate =
1865 fe_dai_app_type_cfg[val][session_type][reg]
1866 .sample_rate;
1867 bits_per_sample =
1868 app_type_cfg[app_type_idx].bit_width;
1869 } else
1870 sample_rate = msm_bedais[reg].sample_rate;
1871
1872 topology = msm_routing_get_adm_topology(val,
1873 session_type,
1874 reg);
1875 acdb_dev_id =
1876 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
1877 copp_idx = adm_open(msm_bedais[reg].port_id, path_type,
1878 sample_rate, channels, topology,
1879 fdai->perf_mode, bits_per_sample,
1880 app_type, acdb_dev_id);
1881 if ((copp_idx < 0) ||
1882 (copp_idx >= MAX_COPPS_PER_PORT)) {
1883 pr_err("%s: adm open failed\n", __func__);
1884 mutex_unlock(&routing_lock);
1885 return;
1886 }
1887 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1888 __func__, val, session_type, reg);
1889 set_bit(copp_idx,
1890 &session_copp_map[val][session_type][reg]);
1891
1892 if (msm_is_resample_needed(
1893 sample_rate,
1894 msm_bedais[reg].sample_rate))
1895 adm_copp_mfc_cfg(
1896 msm_bedais[reg].port_id, copp_idx,
1897 msm_bedais[reg].sample_rate);
1898
1899 if (session_type == SESSION_TYPE_RX &&
1900 fdai->event_info.event_func)
1901 fdai->event_info.event_func(
1902 MSM_PCM_RT_EVT_DEVSWITCH,
1903 fdai->event_info.priv_data);
1904
1905 msm_pcm_routing_build_matrix(val, session_type,
1906 path_type,
1907 fdai->perf_mode,
1908 passthr_mode);
1909 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1910 (passthr_mode == LEGACY_PCM))
1911 msm_pcm_routing_cfg_pp(msm_bedais[reg].port_id,
1912 copp_idx, topology,
1913 channels);
1914 }
1915 } else {
1916 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1917 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1918 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1919 voc_start_playback(set, msm_bedais[reg].port_id);
1920 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301921 if (msm_bedais[reg].active && fdai->strm_id !=
1922 INVALID_SESSION) {
1923 int idx;
1924 int port_id;
1925 unsigned long copp =
1926 session_copp_map[val][session_type][reg];
1927 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1928 if (test_bit(idx, &copp))
1929 break;
1930
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07001931 if (idx >= MAX_COPPS_PER_PORT) {
1932 pr_debug("%s: copp idx is invalid, exiting\n",
1933 __func__);
1934 mutex_unlock(&routing_lock);
1935 return;
1936 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301937 port_id = msm_bedais[reg].port_id;
1938 topology = adm_get_topology_for_port_copp_idx(port_id,
1939 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001940 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301941 adm_close(msm_bedais[reg].port_id, fdai->perf_mode,
1942 idx);
1943 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1944 __func__, copp, val, session_type, reg,
1945 topology);
1946 clear_bit(idx,
1947 &session_copp_map[val][session_type][reg]);
1948 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1949 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1950 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1951 (passthr_mode == LEGACY_PCM))
1952 msm_pcm_routing_deinit_pp(
1953 msm_bedais[reg].port_id,
1954 topology);
1955 msm_pcm_routing_build_matrix(val, session_type,
1956 path_type,
1957 fdai->perf_mode,
1958 passthr_mode);
1959 }
1960 }
1961 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1962 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1963 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1964
1965 mutex_unlock(&routing_lock);
1966}
1967
1968static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1969 struct snd_ctl_elem_value *ucontrol)
1970{
1971 struct soc_mixer_control *mc =
1972 (struct soc_mixer_control *)kcontrol->private_value;
1973
Meng Wang05d5e9a2018-03-28 16:45:03 +08001974 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301975 ucontrol->value.integer.value[0] = 1;
1976 else
1977 ucontrol->value.integer.value[0] = 0;
1978
Meng Wang05d5e9a2018-03-28 16:45:03 +08001979 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301980 ucontrol->value.integer.value[0]);
1981
1982 return 0;
1983}
1984
1985static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1986 struct snd_ctl_elem_value *ucontrol)
1987{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301988 struct snd_soc_dapm_widget *widget =
1989 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301990 struct soc_mixer_control *mc =
1991 (struct soc_mixer_control *)kcontrol->private_value;
1992 struct snd_soc_dapm_update *update = NULL;
1993
1994 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001995 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1996 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301997 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
1998 update);
1999 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002000 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2001 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302002 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2003 update);
2004 }
2005
2006 return 1;
2007}
2008
2009static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2010 struct snd_ctl_elem_value *ucontrol)
2011{
2012 struct soc_mixer_control *mc =
2013 (struct soc_mixer_control *)kcontrol->private_value;
2014
Meng Wang05d5e9a2018-03-28 16:45:03 +08002015 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302016 ucontrol->value.integer.value[0] = 1;
2017 else
2018 ucontrol->value.integer.value[0] = 0;
2019
Meng Wang05d5e9a2018-03-28 16:45:03 +08002020 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302021 ucontrol->value.integer.value[0]);
2022
2023 return 0;
2024}
2025
2026static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2027 struct snd_ctl_elem_value *ucontrol)
2028{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302029 struct snd_soc_dapm_widget *widget =
2030 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302031 struct soc_mixer_control *mc =
2032 (struct soc_mixer_control *)kcontrol->private_value;
2033 struct snd_soc_dapm_update *update = NULL;
2034
Meng Wang05d5e9a2018-03-28 16:45:03 +08002035 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302036 ucontrol->value.integer.value[0]);
2037
2038 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002039 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2040 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302041 snd_soc_dapm_mixer_update_power(widget->dapm,
2042 kcontrol, 1, update);
2043 } else 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) == true)
2045 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302046 snd_soc_dapm_mixer_update_power(widget->dapm,
2047 kcontrol, 0, update);
2048 }
2049
2050 return 1;
2051}
2052
2053static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2054{
2055 u32 session_id = 0;
2056 u16 path_type;
2057 struct media_format_info voc_be_media_format;
2058
2059 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2060
2061 session_id = msm_pcm_routing_get_voc_sessionid(val);
2062
2063 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2064 __func__, val, session_id);
2065
2066 mutex_lock(&routing_lock);
2067
2068 if (set)
2069 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2070 else
2071 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2072
2073 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2074 afe_get_port_type(msm_bedais[reg].port_id) ==
2075 MSM_AFE_PORT_TYPE_RX) {
2076 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2077 __func__, set, msm_bedais[reg].port_id);
2078 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2079 }
2080
2081 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2082 MSM_AFE_PORT_TYPE_RX)
2083 path_type = RX_PATH;
2084 else
2085 path_type = TX_PATH;
2086
2087 if (set) {
2088 if (msm_bedais[reg].active) {
2089 voc_set_route_flag(session_id, path_type, 1);
2090
2091 memset(&voc_be_media_format, 0,
2092 sizeof(struct media_format_info));
2093
2094 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2095 voc_be_media_format.num_channels =
2096 msm_bedais[reg].channel;
2097 voc_be_media_format.sample_rate =
2098 msm_bedais[reg].sample_rate;
2099 voc_be_media_format.bits_per_sample =
2100 msm_bedais[reg].format;
2101 /* Defaulting this to 1 for voice call usecases */
2102 voc_be_media_format.channel_mapping[0] = 1;
2103
2104 voc_set_device_config(session_id, path_type,
2105 &voc_be_media_format);
2106
2107 if (voc_get_route_flag(session_id, TX_PATH) &&
2108 voc_get_route_flag(session_id, RX_PATH))
2109 voc_enable_device(session_id);
2110 } else {
2111 pr_debug("%s BE is not active\n", __func__);
2112 }
2113 } else {
2114 voc_set_route_flag(session_id, path_type, 0);
2115 voc_disable_device(session_id);
2116 }
2117
2118 mutex_unlock(&routing_lock);
2119
2120}
2121
2122static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2123 struct snd_ctl_elem_value *ucontrol)
2124{
2125 struct soc_mixer_control *mc =
2126 (struct soc_mixer_control *)kcontrol->private_value;
2127
2128 mutex_lock(&routing_lock);
2129
Meng Wang05d5e9a2018-03-28 16:45:03 +08002130 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302131 ucontrol->value.integer.value[0] = 1;
2132 else
2133 ucontrol->value.integer.value[0] = 0;
2134
2135 mutex_unlock(&routing_lock);
2136
Meng Wang05d5e9a2018-03-28 16:45:03 +08002137 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302138 ucontrol->value.integer.value[0]);
2139
2140 return 0;
2141}
2142
2143static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2144 struct snd_ctl_elem_value *ucontrol)
2145{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302146 struct snd_soc_dapm_widget *widget =
2147 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302148 struct soc_mixer_control *mc =
2149 (struct soc_mixer_control *)kcontrol->private_value;
2150 struct snd_soc_dapm_update *update = NULL;
2151
2152 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002153 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302154 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2155 update);
2156 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002157 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302158 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2159 update);
2160 }
2161
2162 return 1;
2163}
2164
2165static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2166 struct snd_ctl_elem_value *ucontrol)
2167{
2168 struct soc_mixer_control *mc =
2169 (struct soc_mixer_control *)kcontrol->private_value;
2170
2171 mutex_lock(&routing_lock);
2172
Meng Wang05d5e9a2018-03-28 16:45:03 +08002173 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302174 ucontrol->value.integer.value[0] = 1;
2175 else
2176 ucontrol->value.integer.value[0] = 0;
2177
2178 mutex_unlock(&routing_lock);
2179
Meng Wang05d5e9a2018-03-28 16:45:03 +08002180 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302181 ucontrol->value.integer.value[0]);
2182
2183 return 0;
2184}
2185
2186static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2187 struct snd_ctl_elem_value *ucontrol)
2188{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302189 struct snd_soc_dapm_widget *widget =
2190 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302191 struct soc_mixer_control *mc =
2192 (struct soc_mixer_control *)kcontrol->private_value;
2193 struct snd_soc_dapm_update *update = NULL;
2194
2195 if (ucontrol->value.integer.value[0]) {
2196 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002197 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302198 mutex_unlock(&routing_lock);
2199
2200 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2201 update);
2202 } else {
2203 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002204 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302205 mutex_unlock(&routing_lock);
2206
2207 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2208 update);
2209 }
2210
Meng Wang05d5e9a2018-03-28 16:45:03 +08002211 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302212 ucontrol->value.integer.value[0]);
2213
2214 return 1;
2215}
2216
2217/*
2218 * Return the mapping between port ID and backend ID to enable the AFE callback
2219 * to determine the acdb_dev_id from the port id
2220 */
2221int msm_pcm_get_be_id_from_port_id(int port_id)
2222{
2223 int i;
2224 int be_id = -EINVAL;
2225
2226 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2227 if (msm_bedais[i].port_id == port_id) {
2228 be_id = i;
2229 break;
2230 }
2231 }
2232
2233 return be_id;
2234}
2235
2236/*
2237 * Return the registered dev_acdb_id given a port ID to enable identifying the
2238 * correct AFE calibration information by comparing the header information.
2239 */
2240static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2241{
2242 int acdb_id = -EINVAL;
2243 int i = 0;
2244 int session;
2245 int port_type = afe_get_port_type(port_id);
2246 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2247
2248 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2249 __func__, port_id, be_id, port_type);
2250
2251 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2252 session = SESSION_TYPE_TX;
2253 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2254 session = SESSION_TYPE_RX;
2255 } else {
2256 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2257 acdb_id = -EINVAL;
2258 goto exit;
2259 }
2260
2261 if (be_id < 0) {
2262 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2263 goto exit;
2264 }
2265
2266 mutex_lock(&routing_lock);
2267 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2268 MSM_FRONTEND_DAI_MAX);
2269 if (i < MSM_FRONTEND_DAI_MAX)
2270 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2271
2272 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2273 __func__, i, session, be_id, acdb_id);
2274 mutex_unlock(&routing_lock);
2275exit:
2276 return acdb_id;
2277}
2278
2279static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2280 struct snd_ctl_elem_value *ucontrol)
2281{
2282 ucontrol->value.integer.value[0] = fm_switch_enable;
2283 pr_debug("%s: FM Switch enable %ld\n", __func__,
2284 ucontrol->value.integer.value[0]);
2285 return 0;
2286}
2287
2288static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2289 struct snd_ctl_elem_value *ucontrol)
2290{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302291 struct snd_soc_dapm_widget *widget =
2292 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302293 struct snd_soc_dapm_update *update = NULL;
2294
2295 pr_debug("%s: FM Switch enable %ld\n", __func__,
2296 ucontrol->value.integer.value[0]);
2297 if (ucontrol->value.integer.value[0])
2298 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2299 update);
2300 else
2301 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2302 update);
2303 fm_switch_enable = ucontrol->value.integer.value[0];
2304 return 1;
2305}
2306
2307static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2308 struct snd_ctl_elem_value *ucontrol)
2309{
2310 ucontrol->value.integer.value[0] = hfp_switch_enable;
2311 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2312 ucontrol->value.integer.value[0]);
2313 return 0;
2314}
2315
2316static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2317 struct snd_ctl_elem_value *ucontrol)
2318{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302319 struct snd_soc_dapm_widget *widget =
2320 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302321 struct snd_soc_dapm_update *update = NULL;
2322
2323 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2324 ucontrol->value.integer.value[0]);
2325 if (ucontrol->value.integer.value[0])
2326 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2327 1, update);
2328 else
2329 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2330 0, update);
2331 hfp_switch_enable = ucontrol->value.integer.value[0];
2332 return 1;
2333}
2334
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002335static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2336 struct snd_ctl_elem_value *ucontrol)
2337{
2338 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2339 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2340 ucontrol->value.integer.value[0]);
2341 return 0;
2342}
2343
2344static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2345 struct snd_ctl_elem_value *ucontrol)
2346{
2347 struct snd_soc_dapm_widget *widget =
2348 snd_soc_dapm_kcontrol_widget(kcontrol);
2349 struct snd_soc_dapm_update *update = NULL;
2350
2351 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2352 ucontrol->value.integer.value[0]);
2353 a2dp_switch_enable = ucontrol->value.integer.value[0];
2354 if (a2dp_switch_enable)
2355 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2356 1, update);
2357 else
2358 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2359 0, update);
2360 return 1;
2361}
2362
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302363static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2364 struct snd_ctl_elem_value *ucontrol)
2365{
2366 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2367 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2368 ucontrol->value.integer.value[0]);
2369 return 0;
2370}
2371
2372static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2373 struct snd_ctl_elem_value *ucontrol)
2374{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302375 struct snd_soc_dapm_widget *widget =
2376 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302377 struct snd_soc_dapm_update *update = NULL;
2378
2379 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2380 ucontrol->value.integer.value[0]);
2381 if (ucontrol->value.integer.value[0])
2382 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2383 update);
2384 else
2385 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2386 update);
2387 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2388 return 1;
2389}
2390
2391static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2392 struct snd_ctl_elem_value *ucontrol)
2393{
2394 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2395 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2396 ucontrol->value.integer.value[0]);
2397 return 0;
2398}
2399
2400static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2401 struct snd_ctl_elem_value *ucontrol)
2402{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302403 struct snd_soc_dapm_widget *widget =
2404 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302405 struct snd_soc_dapm_update *update = NULL;
2406
2407 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2408 ucontrol->value.integer.value[0]);
2409 if (ucontrol->value.integer.value[0])
2410 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2411 update);
2412 else
2413 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2414 update);
2415 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2416 return 1;
2417}
2418
2419static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2420 struct snd_ctl_elem_value *ucontrol)
2421{
2422 ucontrol->value.integer.value[0] = usb_switch_enable;
2423 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2424 ucontrol->value.integer.value[0]);
2425 return 0;
2426}
2427
2428static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2429 struct snd_ctl_elem_value *ucontrol)
2430{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302431 struct snd_soc_dapm_widget *widget =
2432 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302433 struct snd_soc_dapm_update *update = NULL;
2434
2435 pr_debug("%s: USB Switch enable %ld\n", __func__,
2436 ucontrol->value.integer.value[0]);
2437 if (ucontrol->value.integer.value[0])
2438 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2439 1, update);
2440 else
2441 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2442 0, update);
2443 usb_switch_enable = ucontrol->value.integer.value[0];
2444 return 1;
2445}
2446
2447static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2448 struct snd_ctl_elem_value *ucontrol)
2449{
2450 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2451 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2452 ucontrol->value.integer.value[0]);
2453 return 0;
2454}
2455
2456static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2457 struct snd_ctl_elem_value *ucontrol)
2458{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302459 struct snd_soc_dapm_widget *widget =
2460 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302461 struct snd_soc_dapm_update *update = NULL;
2462
2463 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2464 ucontrol->value.integer.value[0]);
2465 if (ucontrol->value.integer.value[0])
2466 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2467 update);
2468 else
2469 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2470 update);
2471 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2472 return 1;
2473}
2474
2475static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2476 struct snd_ctl_elem_value *ucontrol)
2477{
2478 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2479 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2480 ucontrol->value.integer.value[0]);
2481 return 0;
2482}
2483
2484static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2485 struct snd_ctl_elem_value *ucontrol)
2486{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302487 struct snd_soc_dapm_widget *widget =
2488 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302489 struct snd_soc_dapm_update *update = NULL;
2490
2491 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2492 ucontrol->value.integer.value[0]);
2493 if (ucontrol->value.integer.value[0])
2494 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2495 update);
2496 else
2497 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2498 update);
2499 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2500 return 1;
2501}
2502
2503static int msm_routing_get_tert_mi2s_switch_mixer(
2504 struct snd_kcontrol *kcontrol,
2505 struct snd_ctl_elem_value *ucontrol)
2506{
2507 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2508 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2509 ucontrol->value.integer.value[0]);
2510 return 0;
2511}
2512
2513static int msm_routing_put_tert_mi2s_switch_mixer(
2514 struct snd_kcontrol *kcontrol,
2515 struct snd_ctl_elem_value *ucontrol)
2516{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302517 struct snd_soc_dapm_widget *widget =
2518 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302519 struct snd_soc_dapm_update *update = NULL;
2520
2521 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2522 ucontrol->value.integer.value[0]);
2523 if (ucontrol->value.integer.value[0])
2524 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2525 update);
2526 else
2527 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2528 update);
2529 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2530 return 1;
2531}
2532
2533static int msm_routing_get_quat_mi2s_switch_mixer(
2534 struct snd_kcontrol *kcontrol,
2535 struct snd_ctl_elem_value *ucontrol)
2536{
2537 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2538 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2539 ucontrol->value.integer.value[0]);
2540 return 0;
2541}
2542
2543static int msm_routing_put_quat_mi2s_switch_mixer(
2544 struct snd_kcontrol *kcontrol,
2545 struct snd_ctl_elem_value *ucontrol)
2546{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302547 struct snd_soc_dapm_widget *widget =
2548 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302549 struct snd_soc_dapm_update *update = NULL;
2550
2551 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2552 ucontrol->value.integer.value[0]);
2553 if (ucontrol->value.integer.value[0])
2554 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2555 update);
2556 else
2557 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2558 update);
2559 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2560 return 1;
2561}
2562
Rohit Kumara5077932017-09-10 22:05:05 +05302563static int msm_routing_get_quin_mi2s_switch_mixer(
2564 struct snd_kcontrol *kcontrol,
2565 struct snd_ctl_elem_value *ucontrol)
2566{
2567 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2568 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2569 ucontrol->value.integer.value[0]);
2570 return 0;
2571}
2572
2573static int msm_routing_put_quin_mi2s_switch_mixer(
2574 struct snd_kcontrol *kcontrol,
2575 struct snd_ctl_elem_value *ucontrol)
2576{
2577 struct snd_soc_dapm_widget *widget =
2578 snd_soc_dapm_kcontrol_widget(kcontrol);
2579 struct snd_soc_dapm_update *update = NULL;
2580
2581 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2582 ucontrol->value.integer.value[0]);
2583 if (ucontrol->value.integer.value[0])
2584 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2585 update);
2586 else
2587 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2588 update);
2589 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2590 return 1;
2591}
2592
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302593static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2594 struct snd_ctl_elem_value *ucontrol)
2595{
2596 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2597 pr_debug("%s: FM Switch enable %ld\n", __func__,
2598 ucontrol->value.integer.value[0]);
2599 return 0;
2600}
2601
2602static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2603 struct snd_ctl_elem_value *ucontrol)
2604{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302605 struct snd_soc_dapm_widget *widget =
2606 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302607 struct snd_soc_dapm_update *update = NULL;
2608
2609 pr_debug("%s: FM Switch enable %ld\n", __func__,
2610 ucontrol->value.integer.value[0]);
2611 if (ucontrol->value.integer.value[0])
2612 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2613 update);
2614 else
2615 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2616 update);
2617 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2618 return 1;
2619}
2620
2621static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2622 struct snd_ctl_elem_value *ucontrol)
2623{
2624 ucontrol->value.integer.value[0] = lsm_port_index;
2625 return 0;
2626}
2627
2628static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2629 struct snd_ctl_elem_value *ucontrol)
2630{
2631 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2632 int mux = ucontrol->value.enumerated.item[0];
2633 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2634
2635 if (mux >= e->items) {
2636 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2637 return -EINVAL;
2638 }
2639
2640 pr_debug("%s: LSM enable %ld\n", __func__,
2641 ucontrol->value.integer.value[0]);
2642 switch (ucontrol->value.integer.value[0]) {
2643 case 1:
2644 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2645 break;
2646 case 2:
2647 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2648 break;
2649 case 3:
2650 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2651 break;
2652 case 4:
2653 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2654 break;
2655 case 5:
2656 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2657 break;
2658 case 6:
2659 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2660 break;
2661 case 7:
2662 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2663 break;
2664 case 8:
2665 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2666 break;
2667 case 9:
2668 lsm_port = ADM_LSM_PORT_ID;
2669 break;
2670 case 10:
2671 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2672 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302673 case 11:
2674 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2675 break;
2676 case 12:
2677 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2678 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302679 case 13:
2680 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2681 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302682 case 14:
2683 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2684 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302685 default:
2686 pr_err("Default lsm port");
2687 break;
2688 }
2689 set_lsm_port(lsm_port);
2690 lsm_port_index = ucontrol->value.integer.value[0];
2691
2692 return 0;
2693}
2694
2695static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2696 struct snd_ctl_elem_value *ucontrol)
2697{
2698 int i;
2699 u16 port_id;
2700 enum afe_mad_type mad_type;
2701
2702 pr_debug("%s: enter\n", __func__);
2703 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2704 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2705 strlen(lsm_port_text[i])))
2706 break;
2707
2708 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002709 pr_warn("%s: Invalid id name %s\n", __func__,
2710 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302711 return -EINVAL;
2712 }
2713
2714 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2715
2716 /*Check for Tertiary/Quaternary/INT3 TX port*/
2717 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2718 strlen(lsm_port_text[7])))
2719 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2720
2721 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2722 strlen(lsm_port_text[8])))
2723 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2724
2725 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2726 strlen(lsm_port_text[10])))
2727 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2728
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302729 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2730 strlen(lsm_port_text[13])))
2731 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2732
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302733 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2734 strlen(lsm_port_text[14])))
2735 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2736
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302737 mad_type = afe_port_get_mad_type(port_id);
2738 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2739 mad_type);
2740 switch (mad_type) {
2741 case MAD_HW_NONE:
2742 ucontrol->value.integer.value[0] = MADNONE;
2743 break;
2744 case MAD_HW_AUDIO:
2745 ucontrol->value.integer.value[0] = MADAUDIO;
2746 break;
2747 case MAD_HW_BEACON:
2748 ucontrol->value.integer.value[0] = MADBEACON;
2749 break;
2750 case MAD_HW_ULTRASOUND:
2751 ucontrol->value.integer.value[0] = MADULTRASOUND;
2752 break;
2753 case MAD_SW_AUDIO:
2754 ucontrol->value.integer.value[0] = MADSWAUDIO;
2755 break;
2756 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002757 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302758 return -EINVAL;
2759 }
2760 return 0;
2761}
2762
2763static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2764 struct snd_ctl_elem_value *ucontrol)
2765{
2766 int i;
2767 u16 port_id;
2768 enum afe_mad_type mad_type;
2769
2770 pr_debug("%s: enter\n", __func__);
2771 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2772 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2773 strlen(lsm_port_text[i])))
2774 break;
2775
2776 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002777 pr_warn("%s: Invalid id name %s\n", __func__,
2778 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302779 return -EINVAL;
2780 }
2781
2782 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2783 switch (ucontrol->value.integer.value[0]) {
2784 case MADNONE:
2785 mad_type = MAD_HW_NONE;
2786 break;
2787 case MADAUDIO:
2788 mad_type = MAD_HW_AUDIO;
2789 break;
2790 case MADBEACON:
2791 mad_type = MAD_HW_BEACON;
2792 break;
2793 case MADULTRASOUND:
2794 mad_type = MAD_HW_ULTRASOUND;
2795 break;
2796 case MADSWAUDIO:
2797 mad_type = MAD_SW_AUDIO;
2798 break;
2799 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002800 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302801 return -EINVAL;
2802 }
2803
2804 /*Check for Tertiary/Quaternary/INT3 TX port*/
2805 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2806 strlen(lsm_port_text[7])))
2807 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2808
2809 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2810 strlen(lsm_port_text[8])))
2811 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2812
2813 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2814 strlen(lsm_port_text[10])))
2815 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2816
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302817 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2818 strlen(lsm_port_text[13])))
2819 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2820
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302821 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2822 strlen(lsm_port_text[14])))
2823 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2824
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302825 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2826 mad_type);
2827 return afe_port_set_mad_type(port_id, mad_type);
2828}
2829
2830static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2831
2832static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2833 adm_override_chs_text);
2834
2835static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2836{
2837 int backend_id;
2838
2839 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2840 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2841 } else {
2842 pr_err("%s: unsupported backend id: %s",
2843 __func__, kcontrol->id.name);
2844 return -EINVAL;
2845 }
2846
2847 return backend_id;
2848}
2849static int msm_routing_adm_channel_config_get(
2850 struct snd_kcontrol *kcontrol,
2851 struct snd_ctl_elem_value *ucontrol)
2852{
2853 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2854
2855 if (backend_id >= 0) {
2856 mutex_lock(&routing_lock);
2857 ucontrol->value.integer.value[0] =
2858 msm_bedais[backend_id].adm_override_ch;
2859 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2860 ucontrol->value.integer.value[0], backend_id);
2861 mutex_unlock(&routing_lock);
2862 }
2863
2864 return 0;
2865}
2866
2867static int msm_routing_adm_channel_config_put(
2868 struct snd_kcontrol *kcontrol,
2869 struct snd_ctl_elem_value *ucontrol)
2870{
2871 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2872
2873 if (backend_id >= 0) {
2874 mutex_lock(&routing_lock);
2875 msm_bedais[backend_id].adm_override_ch =
2876 ucontrol->value.integer.value[0];
2877 pr_debug("%s:updating BE :%d adm channels: %d\n",
2878 __func__, backend_id,
2879 msm_bedais[backend_id].adm_override_ch);
2880 mutex_unlock(&routing_lock);
2881 }
2882
2883 return 0;
2884}
2885
2886static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2887 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2888 msm_routing_adm_channel_config_get,
2889 msm_routing_adm_channel_config_put),
2890};
2891
2892static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2893 struct snd_ctl_elem_value *ucontrol)
2894{
2895
2896 mutex_lock(&routing_lock);
2897 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2898 mutex_unlock(&routing_lock);
2899 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2900 ucontrol->value.integer.value[0]);
2901 return 0;
2902};
2903
2904static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2905 struct snd_ctl_elem_value *ucontrol)
2906{
2907 struct aanc_data aanc_info;
2908
2909 mutex_lock(&routing_lock);
2910 memset(&aanc_info, 0x00, sizeof(aanc_info));
2911 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2912 ucontrol->value.integer.value[0]);
2913 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2914 if (ucontrol->value.integer.value[0] == 0) {
2915 aanc_info.aanc_active = false;
2916 aanc_info.aanc_tx_port = 0;
2917 aanc_info.aanc_rx_port = 0;
2918 } else {
2919 aanc_info.aanc_active = true;
2920 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2921 aanc_info.aanc_tx_port =
2922 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2923 }
2924 afe_set_aanc_info(&aanc_info);
2925 mutex_unlock(&routing_lock);
2926 return 0;
2927};
2928static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2929 struct snd_ctl_elem_value *ucontrol)
2930{
2931 int idx = 0, shift = 0;
2932 struct soc_mixer_control *mc =
2933 (struct soc_mixer_control *)kcontrol->private_value;
2934
Meng Wang05d5e9a2018-03-28 16:45:03 +08002935 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2936 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302937
2938 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2939 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2940 return -EINVAL;
2941 }
2942
2943 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002944 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302945 ucontrol->value.integer.value[0] = 1;
2946 else
2947 ucontrol->value.integer.value[0] = 0;
2948
Meng Wang05d5e9a2018-03-28 16:45:03 +08002949 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302950 ucontrol->value.integer.value[0]);
2951
2952 return 0;
2953}
2954
2955static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2956 struct snd_ctl_elem_value *ucontrol)
2957{
2958 int idx = 0, shift = 0;
2959 struct soc_mixer_control *mc =
2960 (struct soc_mixer_control *)kcontrol->private_value;
2961
Meng Wang05d5e9a2018-03-28 16:45:03 +08002962 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2963 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302964
2965 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2966 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2967 return -EINVAL;
2968 }
2969
Meng Wang05d5e9a2018-03-28 16:45:03 +08002970 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2971 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302972 ucontrol->value.integer.value[0], idx, shift);
2973
2974 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002975 afe_loopback(1, msm_bedais[mc->shift].port_id,
2976 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302977 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002978 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302979 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002980 afe_loopback(0, msm_bedais[mc->shift].port_id,
2981 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302982 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002983 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302984 }
2985
2986 return 1;
2987}
2988
2989static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2990 struct snd_ctl_elem_value *ucontrol)
2991{
2992 u16 fe_id = 0;
2993
2994 fe_id = ((struct soc_mixer_control *)
2995 kcontrol->private_value)->shift;
2996 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2997 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2998 return -EINVAL;
2999 }
3000
3001 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3002
3003 return 0;
3004}
3005
3006static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3007 struct snd_ctl_elem_value *ucontrol)
3008{
3009 u16 fe_id = 0;
3010
3011 fe_id = ((struct soc_mixer_control *)
3012 kcontrol->private_value)->shift;
3013 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3014 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3015 return -EINVAL;
3016 }
3017
3018 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3019
3020 return 1;
3021}
3022
3023static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3024 struct snd_ctl_elem_value *ucontrol)
3025{
3026 u16 fe_id = 0;
3027
3028 fe_id = ((struct soc_multi_mixer_control *)
3029 kcontrol->private_value)->shift;
3030 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3031 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3032 return -EINVAL;
3033 }
3034
3035 ucontrol->value.integer.value[0] =
3036 channel_mixer[fe_id].output_channel;
3037 return 0;
3038}
3039
3040static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3041 struct snd_ctl_elem_value *ucontrol)
3042{
3043 u16 fe_id = 0;
3044
3045 fe_id = ((struct soc_multi_mixer_control *)
3046 kcontrol->private_value)->shift;
3047 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3048 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3049 return -EINVAL;
3050 }
3051
3052 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3053 fe_id,
3054 (unsigned int)(ucontrol->value.integer.value[0]));
3055 channel_mixer[fe_id].output_channel =
3056 (unsigned int)(ucontrol->value.integer.value[0]);
3057
3058 return 1;
3059}
3060
3061static const char *const ch_mixer[] = {"Disable", "Enable"};
3062
3063/* If new backend is added, need update this array */
3064static const char *const be_name[] = {
3065"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3066"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3067"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3068"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3069"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3070"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3071"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3072"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3073"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3074"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3075"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3076"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003077"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303078"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3079"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3080"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3081"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3082"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3083"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3084"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3085"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3086"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3087"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3088"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3089"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3090"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3091"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3092"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3093"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3094"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303095"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3096"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3097"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3098"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003099"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303100"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303101"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303102"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3103"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3104"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303105"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3106"WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1", "WSA_CDC_DMA_TX_1",
Ralf Herzc8701f72018-06-20 11:37:35 +02003107"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303108"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3109"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3110"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3111"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3112"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303113};
3114
3115static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3116 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3117static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3118 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3119static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3120 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3121static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3122 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3123
3124static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3125 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3126static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3127 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3128static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3129 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3130static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3131 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3132static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3133 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3134static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3135 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3136static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3137 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3138static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3139 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3140
3141static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3142 unsigned int channels,
3143 unsigned int items, const char *const names[])
3144{
3145 if (uinfo->value.enumerated.item >= items)
3146 uinfo->value.enumerated.item = items - 1;
3147
3148 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3149 sizeof(uinfo->value.enumerated.name),
3150 "ALSA: too long item name '%s'\n",
3151 names[uinfo->value.enumerated.item]);
3152 strlcpy(uinfo->value.enumerated.name,
3153 names[uinfo->value.enumerated.item],
3154 sizeof(uinfo->value.enumerated.name));
3155 return 0;
3156}
3157
3158static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3159 struct snd_ctl_elem_info *uinfo)
3160{
3161 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3162
3163 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3164 uinfo->count = 1;
3165
3166 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3167 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3168
3169 return 0;
3170}
3171static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3172 struct snd_ctl_elem_value *ucontrol)
3173{
3174 u16 fe_id = 0;
3175
3176 fe_id = ((struct soc_enum *)
3177 kcontrol->private_value)->shift_l;
3178 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3179 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3180 return -EINVAL;
3181 }
3182
3183 pr_debug("%s: FE %d %s\n", __func__,
3184 fe_id,
3185 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3186 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3187 return 0;
3188}
3189
3190static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3191 struct snd_ctl_elem_value *ucontrol)
3192{
3193 u16 fe_id = 0;
3194
3195 fe_id = ((struct soc_enum *)
3196 kcontrol->private_value)->shift_l;
3197 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3198 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3199 return -EINVAL;
3200 }
3201
3202 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3203 pr_debug("%s: %s FE %d\n", __func__,
3204 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3205 fe_id);
3206 return 0;
3207}
3208
3209static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3210 struct snd_ctl_elem_info *uinfo)
3211{
3212 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3213
3214 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3215 uinfo->count = 1;
3216
3217 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3218 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3219
3220 return 0;
3221}
3222
3223static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3224 struct snd_ctl_elem_value *ucontrol)
3225{
3226 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3227 u16 fe_id = 0, in_ch = 0;
3228
3229 fe_id = e->shift_l;
3230 in_ch = e->shift_r;
3231 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3232 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3233 return -EINVAL;
3234 }
3235 if (in_ch >= ADM_MAX_CHANNELS) {
3236 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3237 return -EINVAL;
3238 }
3239
3240 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3241 return 1;
3242}
3243
3244static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3245 struct snd_ctl_elem_value *ucontrol)
3246{
3247 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3248 u16 fe_id = 0, in_ch = 0;
3249
3250 fe_id = e->shift_l;
3251 in_ch = e->shift_r;
3252 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3253 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3254 return -EINVAL;
3255 }
3256 if (in_ch >= ADM_MAX_CHANNELS) {
3257 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3258 return -EINVAL;
3259 }
3260
3261 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3262 return 1;
3263}
3264
3265
3266static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3267 struct snd_ctl_elem_info *uinfo)
3268{
3269 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3270 uinfo->count = ADM_MAX_CHANNELS;
3271 uinfo->value.integer.min = 0;
3272 uinfo->value.integer.max = WEIGHT_0_DB;
3273
3274 return 0;
3275}
3276
3277static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3278 struct snd_ctl_elem_value *ucontrol)
3279{
3280 u16 fe_id = 0, out_ch = 0;
3281 int i, weight;
3282
3283 fe_id = ((struct soc_multi_mixer_control *)
3284 kcontrol->private_value)->shift;
3285 out_ch = ((struct soc_multi_mixer_control *)
3286 kcontrol->private_value)->rshift;
3287 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3288 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3289 return -EINVAL;
3290 }
3291 if (out_ch >= ADM_MAX_CHANNELS) {
3292 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3293 return -EINVAL;
3294 }
3295
3296 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3297 __func__, fe_id,
3298 ucontrol->value.integer.value[0],
3299 ucontrol->value.integer.value[1],
3300 ucontrol->value.integer.value[2],
3301 ucontrol->value.integer.value[3],
3302 ucontrol->value.integer.value[4],
3303 ucontrol->value.integer.value[5],
3304 ucontrol->value.integer.value[6],
3305 ucontrol->value.integer.value[7]);
3306
3307 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3308 weight = ucontrol->value.integer.value[i];
3309 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3310 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3311 __func__, fe_id, out_ch, i,
3312 channel_mixer[fe_id].channel_weight[out_ch][i]);
3313 }
3314
3315 return 0;
3316}
3317
3318static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3319 struct snd_ctl_elem_value *ucontrol)
3320{
3321 u16 fe_id = 0, out_ch = 0;
3322 int i;
3323
3324 fe_id = ((struct soc_multi_mixer_control *)
3325 kcontrol->private_value)->shift;
3326 out_ch = ((struct soc_multi_mixer_control *)
3327 kcontrol->private_value)->rshift;
3328 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3329 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3330 return -EINVAL;
3331 }
3332 if (out_ch >= ADM_MAX_CHANNELS) {
3333 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3334 return -EINVAL;
3335 }
3336
3337 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3338 ucontrol->value.integer.value[i] =
3339 channel_mixer[fe_id].channel_weight[out_ch][i];
3340
3341 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3342 __func__, fe_id,
3343 ucontrol->value.integer.value[0],
3344 ucontrol->value.integer.value[1],
3345 ucontrol->value.integer.value[2],
3346 ucontrol->value.integer.value[3],
3347 ucontrol->value.integer.value[4],
3348 ucontrol->value.integer.value[5],
3349 ucontrol->value.integer.value[6],
3350 ucontrol->value.integer.value[7]);
3351
3352 return 0;
3353}
3354
3355static const struct snd_kcontrol_new channel_mixer_controls[] = {
3356 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3357 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3358 msm_pcm_get_channel_rule_index,
3359 msm_pcm_put_channel_rule_index),
3360 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3361 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3362 msm_pcm_get_channel_rule_index,
3363 msm_pcm_put_channel_rule_index),
3364 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3365 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3366 msm_pcm_get_channel_rule_index,
3367 msm_pcm_put_channel_rule_index),
3368 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3369 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3370 msm_pcm_get_channel_rule_index,
3371 msm_pcm_put_channel_rule_index),
3372 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3373 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3374 msm_pcm_get_channel_rule_index,
3375 msm_pcm_put_channel_rule_index),
3376 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3377 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3378 msm_pcm_get_channel_rule_index,
3379 msm_pcm_put_channel_rule_index),
3380
3381 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3382 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3383 msm_pcm_get_out_chs,
3384 msm_pcm_put_out_chs),
3385 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3386 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3387 msm_pcm_get_out_chs,
3388 msm_pcm_put_out_chs),
3389 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3390 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3391 msm_pcm_get_out_chs,
3392 msm_pcm_put_out_chs),
3393 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3394 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3395 msm_pcm_get_out_chs,
3396 msm_pcm_put_out_chs),
3397 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3398 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3399 msm_pcm_get_out_chs,
3400 msm_pcm_put_out_chs),
3401 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3402 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3403 msm_pcm_get_out_chs,
3404 msm_pcm_put_out_chs),
3405 {
3406 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3407 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3408 .name = "MultiMedia1 Channel Mixer",
3409 .info = msm_pcm_channel_mixer_info,
3410 .get = msm_pcm_channel_mixer_get,
3411 .put = msm_pcm_channel_mixer_put,
3412 .private_value = (unsigned long)&(mm1_channel_mux)
3413 },
3414 {
3415 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3416 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3417 .name = "MultiMedia2 Channel Mixer",
3418 .info = msm_pcm_channel_mixer_info,
3419 .get = msm_pcm_channel_mixer_get,
3420 .put = msm_pcm_channel_mixer_put,
3421 .private_value = (unsigned long)&(mm2_channel_mux)
3422 },
3423 {
3424 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3425 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3426 .name = "MultiMedia3 Channel Mixer",
3427 .info = msm_pcm_channel_mixer_info,
3428 .get = msm_pcm_channel_mixer_get,
3429 .put = msm_pcm_channel_mixer_put,
3430 .private_value = (unsigned long)&(mm3_channel_mux)
3431 },
3432 {
3433 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3434 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3435 .name = "MultiMedia4 Channel Mixer",
3436 .info = msm_pcm_channel_mixer_info,
3437 .get = msm_pcm_channel_mixer_get,
3438 .put = msm_pcm_channel_mixer_put,
3439 .private_value = (unsigned long)&(mm4_channel_mux)
3440 },
3441 {
3442 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3443 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3444 .name = "MultiMedia1 Output Channel1",
3445 .info = msm_pcm_channel_weight_info,
3446 .get = msm_pcm_channel_weight_get,
3447 .put = msm_pcm_channel_weight_put,
3448 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3449 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3450 },
3451 {
3452 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3453 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3454 .name = "MultiMedia1 Output Channel2",
3455 .info = msm_pcm_channel_weight_info,
3456 .get = msm_pcm_channel_weight_get,
3457 .put = msm_pcm_channel_weight_put,
3458 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3459 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3460 },
3461 {
3462 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3463 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3464 .name = "MultiMedia1 Output Channel3",
3465 .info = msm_pcm_channel_weight_info,
3466 .get = msm_pcm_channel_weight_get,
3467 .put = msm_pcm_channel_weight_put,
3468 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3469 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3470 },
3471 {
3472 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3473 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3474 .name = "MultiMedia1 Output Channel4",
3475 .info = msm_pcm_channel_weight_info,
3476 .get = msm_pcm_channel_weight_get,
3477 .put = msm_pcm_channel_weight_put,
3478 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3479 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3480 },
3481 {
3482 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3483 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3484 .name = "MultiMedia1 Output Channel5",
3485 .info = msm_pcm_channel_weight_info,
3486 .get = msm_pcm_channel_weight_get,
3487 .put = msm_pcm_channel_weight_put,
3488 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3489 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3490 },
3491 {
3492 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3493 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3494 .name = "MultiMedia1 Output Channel6",
3495 .info = msm_pcm_channel_weight_info,
3496 .get = msm_pcm_channel_weight_get,
3497 .put = msm_pcm_channel_weight_put,
3498 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3499 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3500 },
3501 {
3502 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3503 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3504 .name = "MultiMedia1 Output Channel7",
3505 .info = msm_pcm_channel_weight_info,
3506 .get = msm_pcm_channel_weight_get,
3507 .put = msm_pcm_channel_weight_put,
3508 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3509 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3510 },
3511 {
3512 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3513 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3514 .name = "MultiMedia1 Output Channel8",
3515 .info = msm_pcm_channel_weight_info,
3516 .get = msm_pcm_channel_weight_get,
3517 .put = msm_pcm_channel_weight_put,
3518 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3519 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3520 },
3521 {
3522 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3523 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3524 .name = "MultiMedia2 Output Channel1",
3525 .info = msm_pcm_channel_weight_info,
3526 .get = msm_pcm_channel_weight_get,
3527 .put = msm_pcm_channel_weight_put,
3528 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3529 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3530 },
3531 {
3532 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3533 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3534 .name = "MultiMedia2 Output Channel2",
3535 .info = msm_pcm_channel_weight_info,
3536 .get = msm_pcm_channel_weight_get,
3537 .put = msm_pcm_channel_weight_put,
3538 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3539 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3540 },
3541 {
3542 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3543 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3544 .name = "MultiMedia2 Output Channel3",
3545 .info = msm_pcm_channel_weight_info,
3546 .get = msm_pcm_channel_weight_get,
3547 .put = msm_pcm_channel_weight_put,
3548 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3549 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3550 },
3551 {
3552 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3553 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3554 .name = "MultiMedia3 Output Channel1",
3555 .info = msm_pcm_channel_weight_info,
3556 .get = msm_pcm_channel_weight_get,
3557 .put = msm_pcm_channel_weight_put,
3558 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3559 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3560 },
3561 {
3562 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3563 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3564 .name = "MultiMedia3 Output Channel2",
3565 .info = msm_pcm_channel_weight_info,
3566 .get = msm_pcm_channel_weight_get,
3567 .put = msm_pcm_channel_weight_put,
3568 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3569 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3570 },
3571 {
3572 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3573 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3574 .name = "MultiMedia1 Channel1",
3575 .info = msm_pcm_channel_input_be_info,
3576 .get = msm_pcm_channel_input_be_get,
3577 .put = msm_pcm_channel_input_be_put,
3578 .private_value = (unsigned long)&(mm1_ch1_enum)
3579 },
3580 {
3581 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3582 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3583 .name = "MultiMedia1 Channel2",
3584 .info = msm_pcm_channel_input_be_info,
3585 .get = msm_pcm_channel_input_be_get,
3586 .put = msm_pcm_channel_input_be_put,
3587 .private_value = (unsigned long)&(mm1_ch2_enum)
3588 },
3589 {
3590 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3591 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3592 .name = "MultiMedia1 Channel3",
3593 .info = msm_pcm_channel_input_be_info,
3594 .get = msm_pcm_channel_input_be_get,
3595 .put = msm_pcm_channel_input_be_put,
3596 .private_value = (unsigned long)&(mm1_ch3_enum)
3597 },
3598 {
3599 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3600 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3601 .name = "MultiMedia1 Channel4",
3602 .info = msm_pcm_channel_input_be_info,
3603 .get = msm_pcm_channel_input_be_get,
3604 .put = msm_pcm_channel_input_be_put,
3605 .private_value = (unsigned long)&(mm1_ch4_enum)
3606 },
3607 {
3608 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3609 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3610 .name = "MultiMedia1 Channel5",
3611 .info = msm_pcm_channel_input_be_info,
3612 .get = msm_pcm_channel_input_be_get,
3613 .put = msm_pcm_channel_input_be_put,
3614 .private_value = (unsigned long)&(mm1_ch5_enum)
3615 },
3616 {
3617 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3618 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3619 .name = "MultiMedia1 Channel6",
3620 .info = msm_pcm_channel_input_be_info,
3621 .get = msm_pcm_channel_input_be_get,
3622 .put = msm_pcm_channel_input_be_put,
3623 .private_value = (unsigned long)&(mm1_ch6_enum)
3624 },
3625 {
3626 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3627 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3628 .name = "MultiMedia1 Channel7",
3629 .info = msm_pcm_channel_input_be_info,
3630 .get = msm_pcm_channel_input_be_get,
3631 .put = msm_pcm_channel_input_be_put,
3632 .private_value = (unsigned long)&(mm1_ch7_enum)
3633 },
3634 {
3635 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3636 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3637 .name = "MultiMedia1 Channel8",
3638 .info = msm_pcm_channel_input_be_info,
3639 .get = msm_pcm_channel_input_be_get,
3640 .put = msm_pcm_channel_input_be_put,
3641 .private_value = (unsigned long)&(mm1_ch8_enum)
3642 },
3643};
3644static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3645 struct snd_ctl_elem_value *ucontrol)
3646{
3647 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3648 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3649 ucontrol->value.integer.value[0]);
3650 return 0;
3651}
3652
3653static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3654 struct snd_ctl_elem_value *ucontrol)
3655{
3656 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3657 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3658 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3659 return 0;
3660}
3661
3662static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3663 "Four", "Five", "Six", "Seven", "Eight"};
3664
3665static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3666 struct snd_ctl_elem_value *ucontrol)
3667{
3668 switch (msm_ec_ref_bit_format) {
3669 case SNDRV_PCM_FORMAT_S24_LE:
3670 ucontrol->value.integer.value[0] = 2;
3671 break;
3672 case SNDRV_PCM_FORMAT_S16_LE:
3673 ucontrol->value.integer.value[0] = 1;
3674 break;
3675 default:
3676 ucontrol->value.integer.value[0] = 0;
3677 break;
3678 }
3679 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3680 __func__, ucontrol->value.integer.value[0]);
3681 return 0;
3682}
3683
3684static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3685 struct snd_ctl_elem_value *ucontrol)
3686{
3687 u16 bit_width = 0;
3688
3689 switch (ucontrol->value.integer.value[0]) {
3690 case 2:
3691 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3692 break;
3693 case 1:
3694 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3695 break;
3696 default:
3697 msm_ec_ref_bit_format = 0;
3698 break;
3699 }
3700
3701 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3702 bit_width = 16;
3703 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3704 bit_width = 24;
3705
3706 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3707 __func__, msm_ec_ref_bit_format);
3708 adm_ec_ref_rx_bit_width(bit_width);
3709 return 0;
3710}
3711
3712static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3713
3714static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3715 struct snd_ctl_elem_value *ucontrol)
3716{
3717 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3718 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3719 __func__, ucontrol->value.integer.value[0]);
3720 return 0;
3721}
3722
3723static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3724 struct snd_ctl_elem_value *ucontrol)
3725{
3726 switch (ucontrol->value.integer.value[0]) {
3727 case 0:
3728 msm_ec_ref_sampling_rate = 0;
3729 break;
3730 case 1:
3731 msm_ec_ref_sampling_rate = 8000;
3732 break;
3733 case 2:
3734 msm_ec_ref_sampling_rate = 16000;
3735 break;
3736 case 3:
3737 msm_ec_ref_sampling_rate = 32000;
3738 break;
3739 case 4:
3740 msm_ec_ref_sampling_rate = 44100;
3741 break;
3742 case 5:
3743 msm_ec_ref_sampling_rate = 48000;
3744 break;
3745 case 6:
3746 msm_ec_ref_sampling_rate = 96000;
3747 break;
3748 case 7:
3749 msm_ec_ref_sampling_rate = 192000;
3750 break;
3751 case 8:
3752 msm_ec_ref_sampling_rate = 384000;
3753 break;
3754 default:
3755 msm_ec_ref_sampling_rate = 48000;
3756 break;
3757 }
3758 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3759 __func__, msm_ec_ref_sampling_rate);
3760 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3761 return 0;
3762}
3763
3764static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3765 "32000", "44100", "48000", "96000", "192000", "384000"};
3766
3767static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3768 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3769 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3770 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3771};
3772
3773static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3774 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3775 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3776 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3777 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3778 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3779 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3780};
3781
3782static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3783 struct snd_ctl_elem_value *ucontrol)
3784{
3785 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3786 mutex_lock(&routing_lock);
3787 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3788 mutex_unlock(&routing_lock);
3789 return 0;
3790}
3791
3792static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3793 struct snd_ctl_elem_value *ucontrol)
3794{
3795 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303796 struct snd_soc_dapm_widget *widget =
3797 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303798 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3799 struct snd_soc_dapm_update *update = NULL;
3800
3801
3802 mutex_lock(&routing_lock);
3803 switch (ucontrol->value.integer.value[0]) {
3804 case 0:
3805 msm_route_ec_ref_rx = 0;
3806 ec_ref_port_id = AFE_PORT_INVALID;
3807 break;
3808 case 1:
3809 msm_route_ec_ref_rx = 1;
3810 ec_ref_port_id = SLIMBUS_0_RX;
3811 break;
3812 case 2:
3813 msm_route_ec_ref_rx = 2;
3814 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3815 break;
3816 case 3:
3817 msm_route_ec_ref_rx = 3;
3818 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3819 break;
3820 case 4:
3821 msm_route_ec_ref_rx = 4;
3822 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3823 break;
3824 case 5:
3825 msm_route_ec_ref_rx = 5;
3826 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3827 break;
3828 case 6:
3829 msm_route_ec_ref_rx = 6;
3830 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3831 break;
3832 case 7:
3833 msm_route_ec_ref_rx = 7;
3834 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3835 break;
3836 case 9:
3837 msm_route_ec_ref_rx = 9;
3838 ec_ref_port_id = SLIMBUS_5_RX;
3839 break;
3840 case 10:
3841 msm_route_ec_ref_rx = 10;
3842 ec_ref_port_id = SLIMBUS_1_TX;
3843 break;
3844 case 11:
3845 msm_route_ec_ref_rx = 11;
3846 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3847 break;
3848 case 12:
3849 msm_route_ec_ref_rx = 12;
3850 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3851 break;
3852 case 13:
3853 msm_route_ec_ref_rx = 13;
3854 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3855 break;
3856 case 14:
3857 msm_route_ec_ref_rx = 14;
3858 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3859 break;
3860 case 15:
3861 msm_route_ec_ref_rx = 15;
3862 ec_ref_port_id = SLIMBUS_6_RX;
3863 break;
3864 case 16:
3865 msm_route_ec_ref_rx = 16;
3866 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3867 break;
3868 case 17:
3869 msm_route_ec_ref_rx = 17;
3870 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3871 break;
3872 case 18:
3873 msm_route_ec_ref_rx = 18;
3874 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3875 break;
3876 case 19:
3877 msm_route_ec_ref_rx = 19;
3878 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3879 break;
3880 case 20:
3881 msm_route_ec_ref_rx = 20;
3882 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3883 break;
3884 case 21:
3885 msm_route_ec_ref_rx = 21;
3886 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3887 break;
3888 case 22:
3889 msm_route_ec_ref_rx = 22;
3890 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3891 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003892 case 23:
3893 msm_route_ec_ref_rx = 23;
3894 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3895 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303896 case 24:
3897 msm_route_ec_ref_rx = 24;
3898 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3899 break;
3900 case 25:
3901 msm_route_ec_ref_rx = 25;
3902 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3903 break;
3904 case 26:
3905 msm_route_ec_ref_rx = 26;
3906 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3907 break;
3908 case 27:
3909 msm_route_ec_ref_rx = 27;
3910 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3911 break;
3912 case 28:
3913 msm_route_ec_ref_rx = 28;
3914 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3915 break;
Zhou Songb167db12018-07-02 17:14:00 +08003916 case 29:
3917 msm_route_ec_ref_rx = 29;
3918 ec_ref_port_id = SLIMBUS_7_RX;
3919 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303920 case 30:
3921 msm_route_ec_ref_rx = 30;
3922 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3923 break;
3924 case 31:
3925 msm_route_ec_ref_rx = 31;
3926 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3927 break;
3928 case 32:
3929 msm_route_ec_ref_rx = 32;
3930 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3931 break;
3932 case 33:
3933 msm_route_ec_ref_rx = 33;
3934 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3935 break;
3936 case 34:
3937 msm_route_ec_ref_rx = 34;
3938 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3939 break;
Derek Chen2bb55772018-10-24 00:17:15 -07003940 case 35:
3941 msm_route_ec_ref_rx = 35;
3942 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
3943 break;
3944 case 36:
3945 msm_route_ec_ref_rx = 36;
3946 ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
3947 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303948 default:
3949 msm_route_ec_ref_rx = 0; /* NONE */
3950 pr_err("%s EC ref rx %ld not valid\n",
3951 __func__, ucontrol->value.integer.value[0]);
3952 ec_ref_port_id = AFE_PORT_INVALID;
3953 break;
3954 }
3955 adm_ec_ref_rx_id(ec_ref_port_id);
3956 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3957 __func__, msm_route_ec_ref_rx);
3958 mutex_unlock(&routing_lock);
3959 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3960 msm_route_ec_ref_rx, e, update);
3961 return 0;
3962}
3963
3964static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3965 "PRI_MI2S_TX", "SEC_MI2S_TX",
3966 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3967 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3968 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3969 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303970 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3971 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003972 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303973 "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 -07003974 "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 +05303975};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303976
3977static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3978 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3979};
3980
3981static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3982 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3983 msm_route_ec_ref_rx_enum[0],
3984 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3985
3986static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3987 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3988 msm_route_ec_ref_rx_enum[0],
3989 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3990
3991static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3992 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3993 msm_route_ec_ref_rx_enum[0],
3994 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3995
3996static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3997 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3998 msm_route_ec_ref_rx_enum[0],
3999 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4000
4001static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
4002 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
4003 msm_route_ec_ref_rx_enum[0],
4004 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4005
4006static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4007 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4008 msm_route_ec_ref_rx_enum[0],
4009 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4010
4011static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4012 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4013 msm_route_ec_ref_rx_enum[0],
4014 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4015
4016static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4017 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4018 msm_route_ec_ref_rx_enum[0],
4019 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4020
Asish Bhattacharya34504582017-08-08 12:55:01 +05304021static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4022 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4023 msm_route_ec_ref_rx_enum[0],
4024 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4025
Laxminath Kasam38070be2017-08-17 18:21:59 +05304026static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4027 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4028 msm_route_ec_ref_rx_enum[0],
4029 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4030
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304031static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4032 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4033 msm_route_ec_ref_rx_enum[0],
4034 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4035
4036static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4037 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4038 msm_route_ec_ref_rx_enum[0],
4039 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4040
4041static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4042 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4043 msm_route_ec_ref_rx_enum[0],
4044 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4045
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304046static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4047 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4048 msm_route_ec_ref_rx_enum[0],
4049 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4050
4051static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4052 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4053 msm_route_ec_ref_rx_enum[0],
4054 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4055
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304056static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4057 struct snd_ctl_elem_value *ucontrol)
4058{
4059 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4060
4061 mutex_lock(&routing_lock);
4062 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4063 mutex_unlock(&routing_lock);
4064 return 0;
4065}
4066
4067static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4068 struct snd_ctl_elem_value *ucontrol)
4069{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304070 struct snd_soc_dapm_widget *widget =
4071 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304072 int mux = ucontrol->value.enumerated.item[0];
4073 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4074 int ret = 1;
4075 bool state = true;
4076 uint16_t ext_ec_ref_port_id;
4077 struct snd_soc_dapm_update *update = NULL;
4078
4079 if (mux >= e->items) {
4080 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4081 return -EINVAL;
4082 }
4083
4084 mutex_lock(&routing_lock);
4085 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4086
4087 switch (msm_route_ext_ec_ref) {
4088 case EXT_EC_REF_PRI_MI2S_TX:
4089 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4090 break;
4091 case EXT_EC_REF_SEC_MI2S_TX:
4092 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4093 break;
4094 case EXT_EC_REF_TERT_MI2S_TX:
4095 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4096 break;
4097 case EXT_EC_REF_QUAT_MI2S_TX:
4098 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4099 break;
4100 case EXT_EC_REF_QUIN_MI2S_TX:
4101 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4102 break;
4103 case EXT_EC_REF_SLIM_1_TX:
4104 ext_ec_ref_port_id = SLIMBUS_1_TX;
4105 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004106 case EXT_EC_REF_SEC_TDM_TX:
4107 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4108 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304109 case EXT_EC_REF_NONE:
4110 default:
4111 ext_ec_ref_port_id = AFE_PORT_INVALID;
4112 state = false;
4113 break;
4114 }
4115
4116 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4117 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4118
4119 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4120 mutex_unlock(&routing_lock);
4121 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4122 update);
4123 } else {
4124 ret = -EINVAL;
4125 mutex_unlock(&routing_lock);
4126 }
4127 return ret;
4128}
4129
4130static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4131 "SEC_MI2S_TX", "TERT_MI2S_TX",
4132 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004133 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304134
4135static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4136 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4137};
4138
4139static const struct snd_kcontrol_new voc_ext_ec_mux =
4140 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4141 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4142
4143
4144static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004145 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4146 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304147 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004149 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4150 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304151 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004153 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4154 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304155 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004157 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4158 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304159 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004161 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4162 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304163 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004165 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4166 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304167 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004169 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4170 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304171 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004173 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4174 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304175 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004177 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4178 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304179 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004181 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4182 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304183 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004185 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4186 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304187 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004189 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4190 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304191 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004193 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4194 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304195 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004197 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4198 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304199 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004201 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4202 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304203 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004205 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4206 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304207 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004209 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4210 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304211 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004213 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4214 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304215 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004217 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4218 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304219 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4220 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304221 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4222 MSM_BACKEND_DAI_PRI_I2S_RX,
4223 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004225 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4226 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304227 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004229 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4230 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304231 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4232 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304233};
4234
4235static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004236 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4237 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304238 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004240 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4241 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304242 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004244 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4245 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304246 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004248 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4249 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304250 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004252 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4253 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304254 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004256 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4257 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304258 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004260 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4261 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304262 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004264 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4265 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304266 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004268 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4269 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304270 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004272 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4273 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304274 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004276 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4277 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304278 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004280 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4281 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304282 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004284 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4285 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304286 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004288 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4289 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304290 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004292 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4293 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304294 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004296 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4297 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304298 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004300 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4301 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304302 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004304 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4305 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304306 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004308 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4309 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304310 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4311 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304312 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4313 MSM_BACKEND_DAI_SEC_I2S_RX,
4314 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004316 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4317 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304318 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004320 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4321 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304322 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4323 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304324};
4325
Ralf Herzc8701f72018-06-20 11:37:35 +02004326static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004327 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004328 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304329 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004331 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004332 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304333 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004335 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004336 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304337 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004339 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004340 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304341 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004343 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004344 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304345 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004347 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004348 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304349 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004351 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004352 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304353 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004355 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004356 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304357 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004359 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004360 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304361 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004363 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004364 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304365 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004367 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004368 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304369 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004371 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004372 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304373 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004375 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004376 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304377 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004379 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004380 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304381 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004383 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004384 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304385 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004387 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004388 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304389 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004391 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004392 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304393 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004395 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004396 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304397 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004399 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004400 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304401 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4402 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304403 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4404 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4405 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004407 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004408 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304409 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004411 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004412 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4413 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4414 msm_routing_put_audio_mixer),
4415};
4416
4417static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4418 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4419 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4420 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4421 msm_routing_put_audio_mixer),
4422 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4423 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4424 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4425 msm_routing_put_audio_mixer),
4426 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4427 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4428 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4429 msm_routing_put_audio_mixer),
4430 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4431 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4432 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4433 msm_routing_put_audio_mixer),
4434 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4435 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4436 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4437 msm_routing_put_audio_mixer),
4438 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4439 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4440 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4441 msm_routing_put_audio_mixer),
4442 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4443 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4444 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4445 msm_routing_put_audio_mixer),
4446 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4447 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4448 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4449 msm_routing_put_audio_mixer),
4450 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4451 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4452 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4453 msm_routing_put_audio_mixer),
4454 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4455 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4456 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4457 msm_routing_put_audio_mixer),
4458 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4459 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4460 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4461 msm_routing_put_audio_mixer),
4462 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4463 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4464 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4465 msm_routing_put_audio_mixer),
4466 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4467 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4468 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4469 msm_routing_put_audio_mixer),
4470 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4471 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4472 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4473 msm_routing_put_audio_mixer),
4474 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4475 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4476 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4477 msm_routing_put_audio_mixer),
4478 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4479 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4480 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4481 msm_routing_put_audio_mixer),
4482 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4483 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4484 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4485 msm_routing_put_audio_mixer),
4486 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4487 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4488 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4489 msm_routing_put_audio_mixer),
4490 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4491 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4492 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4493 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304494 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4495 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4496 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4497 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004498 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4499 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4500 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4501 msm_routing_put_audio_mixer),
4502 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4503 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304504 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4505 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304506};
4507
4508static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004509 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4510 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304511 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004513 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4514 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304515 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004517 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4518 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304519 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004521 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4522 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304523 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004525 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4526 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304527 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004529 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4530 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304531 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004533 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4534 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304535 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004537 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4538 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304539 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004541 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4542 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304543 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004545 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4546 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304547 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004549 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4550 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304551 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004553 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4554 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304555 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004557 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4558 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304559 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004561 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4562 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304563 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004565 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4566 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304567 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004569 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4570 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304571 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4572 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304573 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4574 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4575 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4576 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304577};
4578
4579static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004580 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4581 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304582 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004584 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4585 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304586 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004588 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4589 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304590 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004592 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4593 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304594 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004596 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4597 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304598 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004600 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4601 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304602 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004604 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4605 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304606 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004608 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4609 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304610 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004612 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4613 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304614 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004616 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4617 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304618 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004620 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4621 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304622 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004624 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4625 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304626 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004628 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4629 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304630 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004632 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4633 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304634 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004636 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4637 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304638 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004640 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4641 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304642 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004644 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4645 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304646 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004648 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4649 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304650 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004652 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4653 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304654 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4655 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304656 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4657 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4658 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004660 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4661 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304662 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004664 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4665 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304666 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4667 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304668};
4669
4670static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004671 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4672 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304673 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004675 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4676 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304677 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004679 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4680 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304681 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004683 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4684 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304685 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004687 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4688 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304689 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004691 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4692 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304693 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004695 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4696 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304697 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004699 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4700 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304701 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004703 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4704 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304705 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004707 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4708 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304709 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004711 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4712 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304713 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004715 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4716 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304717 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004719 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4720 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304721 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004723 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4724 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304725 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004727 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4728 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304729 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004731 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4732 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304733 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004735 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4736 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304737 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004739 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4740 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304741 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004743 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4744 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304745 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4746 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304747 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4748 MSM_BACKEND_DAI_SLIMBUS_0_RX,
4749 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004751 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4752 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304753 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004755 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4756 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304757 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4758 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304759};
4760
4761static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004762 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4763 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304764 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004766 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4767 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304768 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004770 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4771 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304772 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004774 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4775 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304776 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004778 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4779 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304780 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004782 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4783 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304784 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004786 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4787 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304788 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004790 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4791 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304792 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004794 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4795 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304796 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004798 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4799 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304800 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004802 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4803 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304804 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004806 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4807 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304808 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004810 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4811 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304812 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004814 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4815 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304816 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004818 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4819 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304820 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004822 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4823 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304824 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004826 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4827 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304828 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004830 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4831 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304832 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004834 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4835 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304836 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4837 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304838 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4839 MSM_BACKEND_DAI_MI2S_RX,
4840 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004842 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4843 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304844 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004846 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4847 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304848 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4849 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304850};
4851
4852static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004853 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4854 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304855 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004857 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4858 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304859 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004861 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4862 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304863 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004865 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4866 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304867 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004869 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4870 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304871 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004873 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4874 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304875 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004877 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4878 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304879 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004881 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4882 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304883 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004885 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4886 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304887 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004889 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4890 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304891 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004893 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4894 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304895 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004897 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4898 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304899 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004901 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4902 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304903 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004905 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4906 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304907 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004909 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4910 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304911 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004913 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4914 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304915 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004917 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4918 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304919 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004921 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4922 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304923 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004925 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4926 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304927 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4928 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304929 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4930 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
4931 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004933 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4934 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304935 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004937 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4938 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304939 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4940 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304941};
4942
4943static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004944 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4945 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304946 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004948 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4949 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304950 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004952 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4953 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304954 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004956 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4957 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304958 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004960 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4961 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304962 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004964 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4965 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304966 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004968 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4969 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304970 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004972 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4973 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304974 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004976 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4977 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304978 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004980 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4981 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304982 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004984 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4985 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304986 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004988 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4989 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304990 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004992 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4993 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304994 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004996 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4997 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304998 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005000 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5001 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305002 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005004 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5005 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305006 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005008 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5009 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305010 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005012 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5013 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305014 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005016 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5017 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305018 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5019 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305020 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5021 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5022 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005024 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5025 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305026 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005028 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5029 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305030 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5031 msm_routing_put_audio_mixer),
5032
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305033};
5034
5035static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005036 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5037 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305038 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005040 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5041 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305042 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005044 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5045 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305046 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005048 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5049 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305050 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005052 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5053 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305054 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005056 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5057 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305058 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005060 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5061 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305062 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005064 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5065 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305066 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005068 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5069 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305070 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005072 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5073 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305074 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005076 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5077 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305078 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005080 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5081 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305082 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005084 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5085 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305086 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005088 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5089 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305090 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005092 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5093 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305094 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005096 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5097 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305098 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005100 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5101 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305102 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5103 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305104 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5105 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5106 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005108 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5109 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305110 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005112 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5113 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305114 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5115 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305116};
5117
5118static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005119 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5120 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305121 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5122 msm_routing_put_audio_mixer),
5123};
5124
5125static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005126 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5127 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305128 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005130 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5131 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305132 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005134 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5135 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305136 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005138 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5139 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305140 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005142 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5143 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305144 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005146 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5147 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305148 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005150 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5151 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305152 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005154 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5155 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305156 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005158 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5159 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305160 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005162 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5163 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305164 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005166 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5167 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305168 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005170 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5171 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305172 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005174 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5175 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305176 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005178 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5179 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305180 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005182 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5183 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305184 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005186 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5187 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305188 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005190 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5191 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305192 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005194 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5195 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305196 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005198 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5199 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305200 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5201 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305202 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5203 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5204 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005206 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5207 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305208 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005210 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5211 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305212 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5213 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305214};
5215
5216static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005217 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5218 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305219 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005221 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5222 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305223 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005225 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5226 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305227 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005229 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5230 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305231 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005233 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5234 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305235 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005237 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5238 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305239 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005241 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5242 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305243 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005245 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5246 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305247 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005249 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5250 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305251 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005253 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5254 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305255 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005257 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5258 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305259 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005261 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5262 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305263 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005265 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5266 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305267 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005269 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5270 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305271 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005273 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5274 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305275 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005277 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5278 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305279 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005281 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5282 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305283 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005285 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5286 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305287 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005289 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5290 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305291 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5292 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305293 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5294 MSM_BACKEND_DAI_PRI_MI2S_RX,
5295 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005297 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5298 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305299 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005301 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5302 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305303 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5304 msm_routing_put_audio_mixer),
5305
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305306};
5307
5308static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005309 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5310 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305311 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005313 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5314 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305315 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005317 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5318 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305319 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005321 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5322 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305323 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005325 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5326 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305327 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005329 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5330 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305331 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005333 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5334 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305335 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005337 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5338 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305339 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005341 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5342 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305343 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005345 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5346 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305347 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005349 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5350 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305351 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005353 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5354 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305355 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005357 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5358 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305359 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005361 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5362 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305363 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005365 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5366 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305367 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005369 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5370 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305371 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5372 msm_routing_put_audio_mixer),
5373};
5374
5375static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005376 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5377 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305378 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005380 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5381 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305382 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005384 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5385 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305386 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005388 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5389 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305390 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005392 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5393 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305394 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005396 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5397 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305398 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005400 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5401 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305402 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005404 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5405 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305406 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005408 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5409 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305410 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005412 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5413 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305414 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005416 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5417 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305418 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005420 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5421 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305422 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005424 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5425 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305426 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005428 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5429 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305430 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005432 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5433 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305434 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005436 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5437 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305438 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5439 msm_routing_put_audio_mixer),
5440};
5441
5442static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005443 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5444 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305445 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005447 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5448 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305449 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005451 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5452 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305453 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005455 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5456 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305457 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005459 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5460 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305461 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005463 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5464 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305465 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005467 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5468 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305469 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005471 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5472 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305473 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005475 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5476 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305477 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005479 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5480 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305481 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005483 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5484 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305485 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005487 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5488 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305489 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005491 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5492 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305493 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005495 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5496 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305497 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005499 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5500 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305501 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005503 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5504 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305505 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005507 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5508 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305509 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005511 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5512 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305513 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005515 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5516 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305517 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5518 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305519 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5520 MSM_BACKEND_DAI_HDMI_RX,
5521 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005523 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5524 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305525 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005527 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5528 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305529 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5530 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305531};
5532
5533static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005534 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5535 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305536 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005538 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5539 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305540 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005542 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5543 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305544 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005546 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5547 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305548 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005550 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5551 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305552 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005554 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5555 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305556 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005558 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5559 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305560 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005562 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5563 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305564 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005566 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5567 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305568 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005570 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5571 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305572 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005574 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5575 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305576 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005578 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5579 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305580 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005582 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5583 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305584 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005586 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5587 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305588 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005590 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5591 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305592 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005594 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5595 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305596 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5597 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305598 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5599 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5600 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5601 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305602};
5603
Karthikeyan Mani57550082018-05-03 18:43:58 -07005604static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5605 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5606 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5607 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5608 msm_routing_put_audio_mixer),
5609 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5610 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5611 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5612 msm_routing_put_audio_mixer),
5613 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5614 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5615 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5616 msm_routing_put_audio_mixer),
5617 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5618 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5619 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5620 msm_routing_put_audio_mixer),
5621 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5622 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5623 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5624 msm_routing_put_audio_mixer),
5625 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5626 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5627 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5628 msm_routing_put_audio_mixer),
5629 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5630 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5631 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5632 msm_routing_put_audio_mixer),
5633 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5634 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5635 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5636 msm_routing_put_audio_mixer),
5637 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5638 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5639 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5640 msm_routing_put_audio_mixer),
5641 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5642 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5643 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5644 msm_routing_put_audio_mixer),
5645 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5646 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5647 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5648 msm_routing_put_audio_mixer),
5649 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5650 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5651 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5652 msm_routing_put_audio_mixer),
5653 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5654 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5655 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5656 msm_routing_put_audio_mixer),
5657 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5658 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5659 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5660 msm_routing_put_audio_mixer),
5661 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5662 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5663 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5664 msm_routing_put_audio_mixer),
5665 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5666 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5667 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5668 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305669 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5670 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5671 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5672 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005673};
5674
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305675 /* incall music delivery mixer */
5676static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005677 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5678 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305679 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005681 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5682 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305683 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005685 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5686 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305687 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005689 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5690 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305691 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5692 msm_routing_put_audio_mixer),
5693};
5694
5695static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005696 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5697 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305698 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005700 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5701 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305702 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005704 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5705 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305706 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005708 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5709 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305710 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5711 msm_routing_put_audio_mixer),
5712};
5713
5714static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005715 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5716 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305717 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005719 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5720 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305721 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005723 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5724 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305725 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005727 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5728 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305729 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5730 msm_routing_put_audio_mixer),
5731};
5732
5733static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005734 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5735 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305736 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005738 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5739 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305740 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005742 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5743 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305744 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005746 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5747 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305748 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005750 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5751 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305752 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005754 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5755 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305756 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005758 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5759 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305760 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005762 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5763 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305764 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005766 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5767 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305768 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005770 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5771 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305772 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005774 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5775 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305776 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005778 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5779 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305780 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005782 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5783 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305784 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005786 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5787 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305788 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005790 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5791 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305792 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005794 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5795 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305796 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5797 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305798 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5799 MSM_BACKEND_DAI_SLIMBUS_6_RX,
5800 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5801 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305802};
5803
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305804static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5805 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5806 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5807 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5808 msm_routing_put_audio_mixer),
5809 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5810 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5811 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5812 msm_routing_put_audio_mixer),
5813 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5814 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5815 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5816 msm_routing_put_audio_mixer),
5817 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5818 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5819 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5820 msm_routing_put_audio_mixer),
5821 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5822 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5823 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5824 msm_routing_put_audio_mixer),
5825 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5826 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5827 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5828 msm_routing_put_audio_mixer),
5829 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5830 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5831 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5832 msm_routing_put_audio_mixer),
5833 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5834 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5835 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5836 msm_routing_put_audio_mixer),
5837 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5838 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5839 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5840 msm_routing_put_audio_mixer),
5841 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5842 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5843 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5844 msm_routing_put_audio_mixer),
5845 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5846 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5847 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5848 msm_routing_put_audio_mixer),
5849 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5850 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5851 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5852 msm_routing_put_audio_mixer),
5853 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5854 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5855 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5856 msm_routing_put_audio_mixer),
5857 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5858 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5859 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5860 msm_routing_put_audio_mixer),
5861 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5862 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5863 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5864 msm_routing_put_audio_mixer),
5865 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5866 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5867 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5868 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305869 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5870 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5871 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5872 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305873};
5874
5875static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5876 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5877 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5878 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5879 msm_routing_put_audio_mixer),
5880 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5881 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5882 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5883 msm_routing_put_audio_mixer),
5884 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5885 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5886 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5887 msm_routing_put_audio_mixer),
5888 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5889 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5890 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5891 msm_routing_put_audio_mixer),
5892 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5893 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5894 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5895 msm_routing_put_audio_mixer),
5896 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5897 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5898 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5899 msm_routing_put_audio_mixer),
5900 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5901 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5902 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5903 msm_routing_put_audio_mixer),
5904 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5905 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5906 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5907 msm_routing_put_audio_mixer),
5908 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5909 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5910 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5911 msm_routing_put_audio_mixer),
5912 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5913 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5914 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5915 msm_routing_put_audio_mixer),
5916 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5917 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5918 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5919 msm_routing_put_audio_mixer),
5920 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5921 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5922 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5923 msm_routing_put_audio_mixer),
5924 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5925 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5926 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5927 msm_routing_put_audio_mixer),
5928 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5929 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5930 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5931 msm_routing_put_audio_mixer),
5932 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5933 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5934 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5935 msm_routing_put_audio_mixer),
5936 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5937 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5938 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5939 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305940 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5941 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5942 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5943 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305944};
5945
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305946static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5947 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5948 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5949 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5950 msm_routing_put_audio_mixer),
5951 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5952 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5953 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5954 msm_routing_put_audio_mixer),
5955 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5956 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5957 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5958 msm_routing_put_audio_mixer),
5959 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5960 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5961 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5962 msm_routing_put_audio_mixer),
5963 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5964 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5965 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5966 msm_routing_put_audio_mixer),
5967 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5968 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5969 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
5971 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5972 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5973 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5974 msm_routing_put_audio_mixer),
5975 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5976 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5977 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5978 msm_routing_put_audio_mixer),
5979 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5980 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5981 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5982 msm_routing_put_audio_mixer),
5983 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5984 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5985 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5986 msm_routing_put_audio_mixer),
5987 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5988 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5989 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5990 msm_routing_put_audio_mixer),
5991 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5992 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5993 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5994 msm_routing_put_audio_mixer),
5995 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5996 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5997 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5998 msm_routing_put_audio_mixer),
5999 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6000 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6001 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6002 msm_routing_put_audio_mixer),
6003 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6004 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6005 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6006 msm_routing_put_audio_mixer),
6007 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6008 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6009 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6010 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306011 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6012 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6013 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6014 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306015};
6016
6017static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6018 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6019 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6020 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6021 msm_routing_put_audio_mixer),
6022 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6023 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6024 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6025 msm_routing_put_audio_mixer),
6026 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6027 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6028 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6029 msm_routing_put_audio_mixer),
6030 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6031 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6032 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6033 msm_routing_put_audio_mixer),
6034 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6035 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6036 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6037 msm_routing_put_audio_mixer),
6038 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6039 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6040 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6041 msm_routing_put_audio_mixer),
6042 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6043 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6044 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6045 msm_routing_put_audio_mixer),
6046 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6047 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6048 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6049 msm_routing_put_audio_mixer),
6050 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6051 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6052 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6053 msm_routing_put_audio_mixer),
6054 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6055 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6056 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6057 msm_routing_put_audio_mixer),
6058 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6059 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6060 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6061 msm_routing_put_audio_mixer),
6062 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6063 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6064 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6065 msm_routing_put_audio_mixer),
6066 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6067 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6068 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6069 msm_routing_put_audio_mixer),
6070 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6071 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6072 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6073 msm_routing_put_audio_mixer),
6074 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6075 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6076 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6077 msm_routing_put_audio_mixer),
6078 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6079 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6080 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6081 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306082 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6083 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6084 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6085 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306086};
6087
6088static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6089 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6090 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6091 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6092 msm_routing_put_audio_mixer),
6093 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6094 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6095 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6096 msm_routing_put_audio_mixer),
6097 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6098 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6099 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6100 msm_routing_put_audio_mixer),
6101 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6102 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6103 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6104 msm_routing_put_audio_mixer),
6105 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6106 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6107 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6108 msm_routing_put_audio_mixer),
6109 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6110 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6111 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6112 msm_routing_put_audio_mixer),
6113 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6114 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6115 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6116 msm_routing_put_audio_mixer),
6117 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6118 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6119 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6120 msm_routing_put_audio_mixer),
6121 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6122 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6123 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6124 msm_routing_put_audio_mixer),
6125 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6126 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6127 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6128 msm_routing_put_audio_mixer),
6129 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6130 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6131 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6132 msm_routing_put_audio_mixer),
6133 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6134 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6135 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6136 msm_routing_put_audio_mixer),
6137 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6138 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6139 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6140 msm_routing_put_audio_mixer),
6141 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6142 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6143 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6144 msm_routing_put_audio_mixer),
6145 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6146 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6147 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6148 msm_routing_put_audio_mixer),
6149 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6150 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6151 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6152 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306153 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6154 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6155 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6156 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306157};
6158
6159static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6160 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6161 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6162 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6163 msm_routing_put_audio_mixer),
6164 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6165 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6166 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6167 msm_routing_put_audio_mixer),
6168 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6169 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6170 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6171 msm_routing_put_audio_mixer),
6172 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6173 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6174 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6175 msm_routing_put_audio_mixer),
6176 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6177 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6178 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6179 msm_routing_put_audio_mixer),
6180 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6181 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6182 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6183 msm_routing_put_audio_mixer),
6184 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6185 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6186 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6187 msm_routing_put_audio_mixer),
6188 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6189 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6190 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6191 msm_routing_put_audio_mixer),
6192 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6193 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6194 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6195 msm_routing_put_audio_mixer),
6196 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6197 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6198 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6199 msm_routing_put_audio_mixer),
6200 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6201 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6202 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6203 msm_routing_put_audio_mixer),
6204 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6205 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6206 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6207 msm_routing_put_audio_mixer),
6208 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6209 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6210 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6211 msm_routing_put_audio_mixer),
6212 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6213 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6214 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6215 msm_routing_put_audio_mixer),
6216 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6217 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6218 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6219 msm_routing_put_audio_mixer),
6220 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6221 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6222 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6223 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306224 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6225 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6226 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6227 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306228};
6229
6230static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6231 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6232 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6233 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6234 msm_routing_put_audio_mixer),
6235 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6236 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6237 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6238 msm_routing_put_audio_mixer),
6239 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6240 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6241 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6242 msm_routing_put_audio_mixer),
6243 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6244 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6245 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6246 msm_routing_put_audio_mixer),
6247 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6248 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6249 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6250 msm_routing_put_audio_mixer),
6251 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6252 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6253 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6254 msm_routing_put_audio_mixer),
6255 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6256 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6257 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6258 msm_routing_put_audio_mixer),
6259 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6260 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6261 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6262 msm_routing_put_audio_mixer),
6263 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6264 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6265 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6266 msm_routing_put_audio_mixer),
6267 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6268 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6269 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6270 msm_routing_put_audio_mixer),
6271 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6272 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6273 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6274 msm_routing_put_audio_mixer),
6275 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6276 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6277 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6278 msm_routing_put_audio_mixer),
6279 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6280 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6281 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6282 msm_routing_put_audio_mixer),
6283 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6284 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6285 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6286 msm_routing_put_audio_mixer),
6287 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6288 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6289 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6290 msm_routing_put_audio_mixer),
6291 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6292 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6293 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6294 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306295 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6296 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6297 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6298 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306299};
6300
6301static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6302 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6303 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6304 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6305 msm_routing_put_audio_mixer),
6306 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6307 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6308 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6309 msm_routing_put_audio_mixer),
6310 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6311 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6312 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6313 msm_routing_put_audio_mixer),
6314 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6315 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6316 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6317 msm_routing_put_audio_mixer),
6318 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6319 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6320 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6321 msm_routing_put_audio_mixer),
6322 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6323 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6324 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6325 msm_routing_put_audio_mixer),
6326 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6327 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6328 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6329 msm_routing_put_audio_mixer),
6330 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6331 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6332 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6333 msm_routing_put_audio_mixer),
6334 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6335 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6336 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6337 msm_routing_put_audio_mixer),
6338 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6339 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6340 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6341 msm_routing_put_audio_mixer),
6342 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6343 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6344 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6345 msm_routing_put_audio_mixer),
6346 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6347 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6348 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6349 msm_routing_put_audio_mixer),
6350 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6351 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6352 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6353 msm_routing_put_audio_mixer),
6354 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6355 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6356 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6357 msm_routing_put_audio_mixer),
6358 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6359 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6360 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6361 msm_routing_put_audio_mixer),
6362 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6363 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6364 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6365 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306366 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6367 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6368 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6369 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306370};
6371
6372static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6373 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6374 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6375 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6376 msm_routing_put_audio_mixer),
6377 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6378 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6379 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6380 msm_routing_put_audio_mixer),
6381 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6382 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6383 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6384 msm_routing_put_audio_mixer),
6385 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6386 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6387 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6388 msm_routing_put_audio_mixer),
6389 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6390 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6391 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6392 msm_routing_put_audio_mixer),
6393 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6394 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6395 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6396 msm_routing_put_audio_mixer),
6397 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6398 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6399 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6400 msm_routing_put_audio_mixer),
6401 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6402 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6403 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6404 msm_routing_put_audio_mixer),
6405 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6406 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6407 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6408 msm_routing_put_audio_mixer),
6409 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6410 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6411 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6412 msm_routing_put_audio_mixer),
6413 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6414 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6415 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6416 msm_routing_put_audio_mixer),
6417 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6418 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6419 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6420 msm_routing_put_audio_mixer),
6421 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6422 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6423 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6424 msm_routing_put_audio_mixer),
6425 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6426 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6427 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6428 msm_routing_put_audio_mixer),
6429 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6430 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6431 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6432 msm_routing_put_audio_mixer),
6433 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6434 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6435 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6436 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306437 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6438 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6439 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6440 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306441};
6442
6443static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6444 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6445 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6446 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6447 msm_routing_put_audio_mixer),
6448 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6449 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6450 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6451 msm_routing_put_audio_mixer),
6452 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6453 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6454 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6455 msm_routing_put_audio_mixer),
6456 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6457 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6458 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6459 msm_routing_put_audio_mixer),
6460 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6461 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6462 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6463 msm_routing_put_audio_mixer),
6464 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6465 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6466 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6467 msm_routing_put_audio_mixer),
6468 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6469 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6470 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6471 msm_routing_put_audio_mixer),
6472 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6473 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6474 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6475 msm_routing_put_audio_mixer),
6476 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6477 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6478 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6479 msm_routing_put_audio_mixer),
6480 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6481 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6482 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6483 msm_routing_put_audio_mixer),
6484 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6485 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6486 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6487 msm_routing_put_audio_mixer),
6488 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6489 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6490 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6491 msm_routing_put_audio_mixer),
6492 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6493 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6494 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6495 msm_routing_put_audio_mixer),
6496 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6497 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6498 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6499 msm_routing_put_audio_mixer),
6500 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6501 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6502 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6503 msm_routing_put_audio_mixer),
6504 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6505 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6506 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6507 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306508 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6509 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6510 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6511 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306512};
6513
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306514static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006515 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6516 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306517 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006519 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6520 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306521 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006523 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6524 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306525 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006527 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6528 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306529 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006531 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6532 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306533 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006535 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6536 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306537 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006539 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6540 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306541 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006543 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6544 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306545 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006547 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6548 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306549 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006551 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6552 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306553 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006555 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6556 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306557 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006559 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6560 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306561 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006563 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6564 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306565 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006567 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6568 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306569 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006571 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6572 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306573 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006575 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6576 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306577 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6578 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306579 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6580 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6581 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6582 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306583};
6584
Surendar Karka3ef3d812018-09-28 18:52:35 +05306585static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6586 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6587 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6588 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6589 msm_routing_put_audio_mixer),
6590 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6591 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6592 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6593 msm_routing_put_audio_mixer),
6594 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6595 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6596 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6597 msm_routing_put_audio_mixer),
6598 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6599 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6600 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6601 msm_routing_put_audio_mixer),
6602 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6603 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6604 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6605 msm_routing_put_audio_mixer),
6606 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6607 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6608 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6609 msm_routing_put_audio_mixer),
6610 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6611 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6612 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6613 msm_routing_put_audio_mixer),
6614 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6615 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6616 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6617 msm_routing_put_audio_mixer),
6618 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6619 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6620 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6621 msm_routing_put_audio_mixer),
6622 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6623 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6624 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6625 msm_routing_put_audio_mixer),
6626 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6627 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6628 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6629 msm_routing_put_audio_mixer),
6630 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6631 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6632 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6633 msm_routing_put_audio_mixer),
6634 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6635 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6636 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6637 msm_routing_put_audio_mixer),
6638 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6639 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6640 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6641 msm_routing_put_audio_mixer),
6642 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6643 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6644 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6645 msm_routing_put_audio_mixer),
6646 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6647 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6648 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6649 msm_routing_put_audio_mixer),
6650 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6651 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6652 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6653 msm_routing_put_audio_mixer),
6654};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306655static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006656 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6657 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306658 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006660 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6661 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306662 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006664 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6665 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306666 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006668 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6669 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306670 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006672 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6673 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306674 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006676 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6677 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306678 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006680 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6681 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306682 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006684 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6685 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306686 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006688 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6689 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306690 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006692 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6693 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306694 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006696 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6697 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306698 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006700 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6701 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306702 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006704 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6705 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306706 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006708 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6709 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306710 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006712 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6713 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306714 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006716 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6717 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306718 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6719 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306720 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6721 MSM_BACKEND_DAI_USB_RX,
6722 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6723 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306724};
6725
6726static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006727 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6728 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306729 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006731 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6732 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306733 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006735 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6736 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306737 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006739 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6740 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306741 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006743 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6744 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306745 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006747 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6748 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306749 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006751 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6752 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306753 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006755 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6756 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306757 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006759 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6760 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306761 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006763 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6764 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306765 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006767 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6768 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306769 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006771 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6772 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306773 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006775 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6776 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306777 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006779 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6780 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306781 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006783 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6784 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306785 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006787 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6788 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306789 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006791 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6792 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306793 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006795 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6796 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306797 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006799 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6800 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306801 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6802 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306803 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6804 MSM_BACKEND_DAI_INT_BT_SCO_RX,
6805 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006807 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6808 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306809 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006811 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6812 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306813 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6814 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306815};
6816
6817static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006818 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6819 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306820 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006822 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6823 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306824 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006826 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6827 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306828 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006830 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6831 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306832 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006834 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6835 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306836 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006838 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6839 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306840 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006842 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6843 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306844 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006846 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6847 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306848 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006850 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6851 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306852 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006854 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6855 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306856 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006858 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6859 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306860 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006862 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6863 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306864 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006866 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6867 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306868 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006870 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6871 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306872 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006874 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6875 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306876 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006878 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6879 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306880 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6881 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306882 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6883 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
6884 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6885 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306886};
6887
6888static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006889 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6890 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306891 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006893 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6894 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306895 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006897 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6898 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306899 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006901 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6902 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306903 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006905 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6906 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306907 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006909 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6910 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306911 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006913 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6914 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306915 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006917 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6918 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306919 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006921 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6922 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306923 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006925 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6926 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306927 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006929 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6930 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306931 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006933 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6934 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306935 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006937 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6938 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306939 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006941 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6942 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306943 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006945 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6946 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306947 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006949 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6950 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306951 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006953 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6954 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306955 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006957 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6958 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306959 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006961 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6962 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306963 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6964 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306965 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6966 MSM_BACKEND_DAI_INT_FM_RX,
6967 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006969 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6970 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306971 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006973 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6974 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306975 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6976 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306977};
6978
6979static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006980 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6981 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306982 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006984 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6985 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306986 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006988 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6989 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306990 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006992 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6993 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306994 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006996 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6997 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306998 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007000 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7001 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307002 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007004 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7005 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307006 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007008 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7009 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307010 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007012 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7013 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307014 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007016 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7017 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307018 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007020 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7021 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307022 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007024 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7025 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307026 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007028 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7029 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307030 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007032 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7033 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307034 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007036 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7037 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307038 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007040 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7041 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307042 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007044 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7045 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307046 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007048 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7049 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307050 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007052 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7053 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307054 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7055 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307056 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7057 MSM_BACKEND_DAI_AFE_PCM_RX,
7058 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007060 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7061 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307062 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007064 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7065 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307066 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7067 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307068};
7069
7070static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007071 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7072 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307073 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007075 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7076 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307077 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007079 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7080 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307081 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007083 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7084 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307085 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007087 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7088 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307089 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007091 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7092 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307093 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007095 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7096 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307097 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007099 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7100 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307101 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007103 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7104 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307105 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007107 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7108 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307109 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007111 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7112 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307113 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007115 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7116 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307117 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007119 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7120 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307121 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007123 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7124 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307125 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007127 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7128 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307129 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007131 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7132 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307133 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007135 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7136 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307137 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007139 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7140 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307141 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007143 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7144 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307145 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7146 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007147 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7148 MSM_BACKEND_DAI_AUXPCM_RX,
7149 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7150 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307151 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7152 MSM_BACKEND_DAI_AUXPCM_RX,
7153 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007155 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7156 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307157 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007159 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7160 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307161 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7162 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307163};
7164
7165static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007166 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7167 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307168 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007170 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7171 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307172 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007174 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7175 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307176 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007178 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7179 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307180 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007182 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7183 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307184 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007186 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7187 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307188 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007190 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7191 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307192 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007194 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7195 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307196 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007198 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7199 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307200 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007202 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7203 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307204 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007206 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7207 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307208 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007210 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7211 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307212 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007214 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7215 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307216 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007218 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7219 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307220 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007222 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7223 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307224 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007226 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7227 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307228 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007230 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7231 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307232 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007234 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7235 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307236 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007238 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7239 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307240 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7241 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007242 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7243 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7244 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7245 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307246 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7247 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7248 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007250 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7251 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307252 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007254 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7255 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307256 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7257 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307258};
7259
7260static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007261 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7262 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307263 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007265 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7266 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307267 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007269 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7270 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307271 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007273 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7274 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307275 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007277 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7278 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307279 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007281 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7282 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307283 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007285 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7286 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307287 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007289 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7290 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307291 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007293 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7294 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307295 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007297 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7298 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307299 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007301 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7302 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307303 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007305 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7306 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307307 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007309 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7310 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307311 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007313 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7314 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307315 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007317 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7318 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307319 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007321 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7322 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307323 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7324 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307325 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7326 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7327 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7328 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307329};
7330
7331static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007332 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7333 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307334 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007336 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7337 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307338 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007340 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7341 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307342 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007344 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7345 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307346 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007348 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7349 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307350 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007352 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7353 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307354 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007356 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7357 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307358 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007360 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7361 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307362 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007364 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7365 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307366 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007368 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7369 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307370 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007372 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7373 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307374 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007376 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7377 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307378 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007380 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7381 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307382 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007384 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7385 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307386 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007388 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7389 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307390 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007392 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7393 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307394 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7395 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307396 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7397 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7398 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7399 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307400};
7401
Rohit Kumara5077932017-09-10 22:05:05 +05307402static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007403 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7404 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307405 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007407 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7408 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307409 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007411 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7412 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307413 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007415 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7416 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307417 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007419 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7420 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307421 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007423 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7424 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307425 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007427 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7428 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307429 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007431 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7432 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307433 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007435 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7436 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307437 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007439 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7440 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307441 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007443 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7444 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307445 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007447 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7448 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307449 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007451 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7452 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307453 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007455 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7456 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307457 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007459 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7460 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307461 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007463 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7464 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307465 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7466 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307467 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7468 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7469 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7470 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307471};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307472static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007473 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7474 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307475 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007477 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7478 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307479 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007481 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7482 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307483 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007485 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7486 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307487 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007489 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7490 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307491 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007493 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7494 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307495 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007497 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7498 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307499 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007501 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7502 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307503 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007505 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7506 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307507 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007509 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7510 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307511 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007513 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7514 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307515 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007517 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7518 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307519 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007521 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7522 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307523 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007525 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7526 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307527 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007529 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7530 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307531 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007533 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7534 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307535 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7536 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007537 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7538 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7539 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7540 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307541};
7542
7543static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007544 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7545 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307546 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007548 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7549 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307550 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007552 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7553 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307554 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007556 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7557 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307558 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007560 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7561 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307562 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007564 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7565 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307566 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007568 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7569 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307570 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007572 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7573 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307574 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007576 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7577 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307578 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007580 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7581 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307582 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007584 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7585 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307586 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007588 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7589 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307590 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007592 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7593 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307594 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007596 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7597 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307598 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007600 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7601 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307602 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007604 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7605 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307606 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7607 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007608 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7609 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7610 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7611 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307612};
7613
7614static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007615 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7616 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307617 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007619 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7620 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307621 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007623 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7624 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307625 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007627 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7628 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307629 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007631 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7632 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307633 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007635 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7636 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307637 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007639 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7640 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307641 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007643 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7644 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307645 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007647 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7648 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307649 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007651 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7652 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307653 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007655 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7656 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307657 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007659 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7660 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307661 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007663 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7664 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307665 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007667 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7668 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307669 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007671 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7672 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307673 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007675 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7676 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307677 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7678 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007679 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7680 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7681 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7682 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307683};
7684
7685static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007686 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7687 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307688 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007690 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7691 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307692 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007694 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7695 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307696 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007698 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7699 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307700 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007702 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7703 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307704 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007706 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7707 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307708 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007710 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7711 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307712 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007714 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7715 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307716 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007718 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7719 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307720 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007722 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7723 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307724 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007726 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7727 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307728 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007730 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7731 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307732 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007734 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7735 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307736 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007738 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7739 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307740 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007742 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7743 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307744 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007746 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7747 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307748 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7749 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007750 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7751 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7752 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7753 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307754};
7755
7756static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007757 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7758 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307759 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007761 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7762 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307763 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007765 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7766 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307767 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007769 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7770 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307771 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007773 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7774 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307775 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007777 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7778 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307779 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007781 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7782 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307783 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007785 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7786 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307787 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007789 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7790 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307791 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007793 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7794 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307795 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007797 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7798 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307799 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007801 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7802 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307803 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007805 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7806 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307807 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007809 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7810 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307811 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007813 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7814 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307815 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007817 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7818 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307819 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7820 msm_routing_put_audio_mixer),
7821};
7822
7823static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007824 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7825 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307826 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007828 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7829 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307830 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007832 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7833 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307834 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007836 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7837 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307838 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007840 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7841 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307842 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007844 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7845 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307846 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007848 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7849 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307850 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007852 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7853 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307854 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007856 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7857 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307858 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007860 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7861 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307862 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007864 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7865 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307866 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007868 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7869 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307870 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007872 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7873 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307874 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007876 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7877 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307878 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007880 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7881 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307882 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007884 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7885 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307886 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7887 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007888 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7889 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7890 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7891 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307892};
7893
7894static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007895 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7896 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307897 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007899 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7900 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307901 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007903 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7904 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307905 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007907 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7908 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307909 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007911 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7912 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307913 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007915 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7916 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307917 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007919 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7920 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307921 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007923 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7924 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307925 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007927 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7928 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307929 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007931 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7932 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307933 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007935 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7936 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307937 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007939 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7940 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307941 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007943 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7944 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307945 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007947 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7948 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307949 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007951 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7952 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307953 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007955 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7956 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307957 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7958 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007959 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7960 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7961 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7962 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307963};
7964
7965static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007966 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7967 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307968 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007970 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7971 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307972 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007974 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7975 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307976 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007978 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7979 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307980 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007982 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7983 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307984 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007986 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7987 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307988 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007990 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7991 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307992 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007994 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7995 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307996 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007998 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7999 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308000 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008002 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8003 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308004 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008006 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8007 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308008 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008010 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8011 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308012 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008014 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8015 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308016 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008018 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8019 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308020 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008022 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8023 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308024 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008026 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8027 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308028 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8029 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008030 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8031 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8032 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8033 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308034};
8035
8036static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008037 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8038 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308039 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008041 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8042 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308043 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008045 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8046 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308047 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008049 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8050 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308051 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008053 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8054 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308055 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008057 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8058 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308059 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008061 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8062 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308063 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008065 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8066 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308067 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008069 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8070 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308071 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008073 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8074 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308075 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008077 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8078 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308079 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008081 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8082 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308083 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008085 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8086 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308087 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008089 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8090 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308091 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008093 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8094 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308095 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008097 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8098 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308099 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8100 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008101 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8102 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8103 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8104 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308105};
8106
8107static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008108 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8109 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308110 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008112 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8113 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308114 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008116 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8117 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308118 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008120 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8121 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308122 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008124 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8125 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308126 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008128 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8129 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308130 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008132 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8133 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308134 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008136 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8137 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308138 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008140 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8141 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308142 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008144 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8145 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308146 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008148 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8149 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308150 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008152 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8153 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308154 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008156 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8157 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308158 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008160 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8161 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308162 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008164 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8165 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308166 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008168 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8169 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308170 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8171 msm_routing_put_audio_mixer),
8172};
8173
8174static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008175 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8176 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308177 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008179 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8180 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308181 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008183 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8184 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308185 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008187 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8188 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308189 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008191 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8192 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308193 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008195 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8196 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308197 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008199 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8200 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308201 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008203 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8204 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308205 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008207 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8208 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308209 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008211 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8212 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308213 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008215 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8216 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308217 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008219 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8220 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308221 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008223 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8224 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308225 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008227 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8228 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308229 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008231 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8232 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308233 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008235 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8236 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308237 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8238 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008239 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8240 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8241 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8242 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308243};
8244
8245static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008246 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8247 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308248 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008250 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8251 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308252 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008254 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8255 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308256 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008258 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8259 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308260 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008262 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8263 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308264 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008266 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8267 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308268 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008270 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8271 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308272 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008274 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8275 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308276 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008278 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8279 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308280 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008282 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8283 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308284 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008286 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8287 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308288 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008290 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8291 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308292 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008294 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8295 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308296 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008298 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8299 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308300 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008302 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8303 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308304 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008306 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8307 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308308 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8309 msm_routing_put_audio_mixer),
8310};
8311
8312static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008313 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8314 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308315 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008317 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8318 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308319 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008321 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8322 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308323 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008325 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8326 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308327 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008329 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8330 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308331 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008333 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8334 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308335 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008337 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8338 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308339 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008341 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8342 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308343 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008345 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8346 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308347 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008349 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8350 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308351 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008353 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8354 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308355 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008357 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8358 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308359 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008361 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8362 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308363 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008365 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8366 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308367 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008369 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8370 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308371 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008373 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8374 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308375 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8376 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008377 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8378 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8379 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8380 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308381};
8382
8383static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008384 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8385 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308386 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008388 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8389 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308390 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008392 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8393 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308394 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008396 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8397 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308398 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008400 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8401 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308402 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008404 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8405 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308406 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008408 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8409 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308410 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008412 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8413 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308414 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008416 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8417 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308418 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008420 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8421 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308422 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008424 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8425 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308426 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008428 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8429 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308430 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008432 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8433 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308434 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008436 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8437 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308438 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008440 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8441 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308442 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008444 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8445 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308446 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8447 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008448 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8449 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8450 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8451 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308452};
8453
8454static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008455 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8456 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308457 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008459 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8460 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308461 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008463 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8464 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308465 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008467 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8468 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308469 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008471 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8472 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308473 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008475 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8476 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308477 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008479 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8480 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308481 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008483 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8484 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308485 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008487 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8488 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308489 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008491 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8492 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308493 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008495 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8496 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308497 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008499 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8500 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308501 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008503 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8504 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308505 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008507 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8508 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308509 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008511 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8512 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308513 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008515 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8516 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308517 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8518 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008519 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8520 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8521 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8522 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308523};
8524
8525static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008526 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8527 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308528 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008530 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8531 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308532 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008534 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8535 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308536 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008538 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8539 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308540 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008542 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8543 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308544 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008546 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8547 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308548 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008550 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8551 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308552 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008554 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8555 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308556 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008558 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8559 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308560 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008562 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8563 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308564 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008566 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8567 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308568 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008570 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8571 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308572 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008574 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8575 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308576 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008578 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8579 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308580 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008582 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8583 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308584 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008586 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8587 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308588 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8589 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008590 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8591 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8592 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8593 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308594};
8595
8596static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008597 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8598 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308599 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008601 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8602 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308603 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008605 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8606 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308607 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008609 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8610 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308611 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008613 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8614 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308615 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008617 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8618 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308619 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008621 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8622 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308623 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008625 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8626 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308627 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008629 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8630 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308631 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008633 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8634 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308635 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008637 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8638 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308639 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008641 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8642 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308643 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008645 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8646 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308647 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008649 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8650 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308651 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008653 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8654 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308655 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008657 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8658 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308659 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008661 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8662 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308663 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8664 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008665 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8666 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8667 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8668 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308669};
8670
8671static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008672 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8673 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308674 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008676 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8677 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308678 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008680 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8681 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308682 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008684 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8685 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308686 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008688 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8689 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308690 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008692 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8693 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308694 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008696 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8697 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308698 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008700 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8701 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308702 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008704 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8705 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308706 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008708 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8709 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308710 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008712 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8713 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308714 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008716 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8717 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308718 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008720 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8721 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308722 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008724 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8725 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308726 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008728 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8729 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308730 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008732 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8733 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308734 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8735 msm_routing_put_audio_mixer),
8736};
8737
8738static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008739 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8740 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308741 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008743 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8744 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308745 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008747 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8748 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308749 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008751 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8752 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308753 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008755 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8756 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308757 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008759 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8760 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308761 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008763 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8764 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308765 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008767 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8768 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308769 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008771 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8772 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308773 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008775 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8776 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308777 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008779 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8780 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308781 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008783 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8784 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308785 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008787 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8788 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308789 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008791 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8792 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308793 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008795 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8796 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308797 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008799 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8800 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308801 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008803 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8804 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308805 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8806 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008807 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8808 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8809 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8810 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308811};
8812
8813static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008814 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8815 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308816 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008818 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8819 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308820 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008822 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8823 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308824 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008826 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8827 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308828 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008830 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8831 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308832 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008834 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8835 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308836 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008838 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8839 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308840 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008842 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8843 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308844 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008846 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8847 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308848 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008850 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8851 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308852 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008854 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8855 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308856 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008858 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8859 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308860 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008862 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8863 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308864 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008866 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8867 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308868 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008870 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8871 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308872 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008874 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8875 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308876 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008878 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8879 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308880 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8881 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008882 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8883 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8884 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8885 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308886};
8887
8888static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008889 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8890 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308891 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008893 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8894 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308895 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008897 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8898 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308899 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008901 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8902 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308903 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008905 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8906 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308907 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008909 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8910 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308911 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008913 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8914 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308915 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008917 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8918 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308919 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008921 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8922 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308923 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008925 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8926 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308927 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008929 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8930 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308931 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008933 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8934 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308935 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008937 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8938 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308939 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008941 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8942 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308943 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008945 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8946 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308947 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008949 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8950 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308951 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008953 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8954 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308955 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8956 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008957 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8958 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8959 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8960 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308961};
8962
Rohit Kumara5077932017-09-10 22:05:05 +05308963static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008964 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8965 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308966 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008968 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8969 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308970 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008972 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8973 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308974 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008976 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8977 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308978 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008980 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8981 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308982 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008984 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8985 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308986 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008988 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8989 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308990 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008992 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8993 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308994 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008996 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8997 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308998 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009000 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9001 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309002 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009004 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9005 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309006 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009008 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9009 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309010 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009012 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9013 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309014 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009016 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9017 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309018 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009020 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9021 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309022 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009024 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9025 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309026 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009028 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9029 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309030 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9031 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009032 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9033 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9034 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9035 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309036};
9037
9038static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009039 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9040 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309041 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009043 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9044 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309045 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009047 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9048 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309049 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009051 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9052 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309053 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009055 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9056 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309057 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009059 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9060 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309061 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009063 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9064 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309065 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009067 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9068 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309069 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009071 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9072 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309073 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009075 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9076 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309077 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009079 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9080 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309081 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009083 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9084 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309085 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009087 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9088 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309089 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009091 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9092 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309093 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009095 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9096 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309097 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009099 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9100 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309101 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9102 msm_routing_put_audio_mixer),
9103};
9104
9105static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009106 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9107 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309108 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009110 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9111 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309112 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009114 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9115 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309116 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009118 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9119 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309120 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009122 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9123 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309124 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009126 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9127 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309128 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009130 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9131 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309132 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009134 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9135 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309136 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009138 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9139 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309140 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009142 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9143 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309144 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009146 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9147 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309148 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009150 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9151 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309152 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009154 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9155 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309156 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009158 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9159 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309160 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009162 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9163 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309164 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009166 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9167 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309168 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009170 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9171 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309172 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9173 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009174 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9175 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9176 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9177 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309178};
9179
9180static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009181 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9182 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309183 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009185 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9186 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309187 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009189 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9190 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309191 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009193 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9194 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309195 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009197 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9198 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309199 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009201 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9202 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309203 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009205 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9206 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309207 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009209 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9210 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309211 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009213 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9214 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309215 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009217 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9218 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309219 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009221 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9222 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309223 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009225 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9226 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309227 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009229 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9230 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309231 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009233 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9234 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309235 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009237 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9238 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309239 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009241 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9242 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309243 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009245 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9246 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309247 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9248 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009249 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9250 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9251 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9252 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309253};
9254
9255static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009256 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9257 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309258 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009260 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9261 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309262 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009264 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9265 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309266 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009268 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9269 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309270 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009272 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9273 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309274 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009276 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9277 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309278 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009280 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9281 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309282 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009284 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9285 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309286 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009288 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9289 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309290 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009292 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9293 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309294 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009296 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9297 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309298 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009300 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9301 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309302 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009304 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9305 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309306 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009308 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9309 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309310 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009312 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9313 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309314 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009316 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9317 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309318 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009320 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9321 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309322 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9323 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009324 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9325 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9326 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9327 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309328};
9329
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309330static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009331 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9332 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309333 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009335 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9336 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309337 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009339 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9340 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309341 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009343 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9344 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309345 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009347 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9348 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309349 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009351 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9352 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309353 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009355 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9356 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309357 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009359 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9360 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309361 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009363 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9364 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309365 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009367 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9368 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309369 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009371 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9372 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309373 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009375 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9376 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309377 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009379 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9380 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309381 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009383 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9384 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309385 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009387 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9388 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309389 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009391 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9392 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309393 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009395 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9396 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309397 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009399 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9400 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309401 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009403 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9404 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309405 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009407 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9408 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309409 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009411 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9412 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309413 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009415 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9416 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309417 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009419 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9420 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309421 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009423 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9424 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309425 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009427 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9428 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309429 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009431 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9432 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309433 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009435 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9436 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309437 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009439 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9440 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309441 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009443 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9444 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309445 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009447 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9448 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309449 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009451 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9452 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309453 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009455 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9456 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309457 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009459 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9460 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309461 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009463 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9464 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309465 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009467 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9468 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309469 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009471 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9472 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309473 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009475 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9476 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309477 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009479 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9480 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309481 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009483 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9484 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309485 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009487 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9488 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309489 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009491 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9492 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309493 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009495 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9496 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309497 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009499 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9500 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309501 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009503 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9504 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309505 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009507 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9508 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309509 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9510 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309511 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9512 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9513 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9514 msm_routing_put_audio_mixer),
9515 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9516 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9517 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9518 msm_routing_put_audio_mixer),
9519 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9520 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9521 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9522 msm_routing_put_audio_mixer),
9523 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9525 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
9527 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9528 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9529 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9530 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309531 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9533 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
9535 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9537 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9538 msm_routing_put_audio_mixer),
9539 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9540 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9541 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9542 msm_routing_put_audio_mixer),
9543 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9544 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9545 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9546 msm_routing_put_audio_mixer),
9547 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9548 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9549 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9550 msm_routing_put_audio_mixer),
9551 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9552 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9553 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9554 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009555 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9556 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9557 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9558 msm_routing_put_audio_mixer),
9559 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9560 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9561 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9562 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309563 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9564 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9565 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9566 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309567 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9568 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9569 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9570 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309571};
9572
9573static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009574 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9575 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309576 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009578 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9579 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309580 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009582 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9583 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309584 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009586 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9587 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309588 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009590 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9591 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309592 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009594 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9595 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309596 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009598 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9599 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309600 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009602 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9603 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309604 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009606 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9607 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309608 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009610 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9611 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309612 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009614 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9615 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309616 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009618 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9619 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309620 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009622 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9623 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309624 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009626 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9627 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309628 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009630 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9631 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309632 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009634 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9635 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309636 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009638 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9639 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309640 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009642 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9643 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309644 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009646 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9647 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309648 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009650 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9651 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309652 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009654 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9655 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309656 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009658 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9659 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309660 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009662 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9663 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309664 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009666 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9667 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309668 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009670 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9671 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309672 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009674 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9675 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309676 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009678 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9679 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309680 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009682 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9683 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309684 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009686 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9687 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309688 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009690 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9691 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309692 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009694 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9695 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309696 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009698 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9699 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309700 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009702 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9703 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309704 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009706 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9707 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309708 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9709 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309710 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9711 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9712 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9713 msm_routing_put_audio_mixer),
9714 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9715 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9716 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9717 msm_routing_put_audio_mixer),
9718 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9719 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9720 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9721 msm_routing_put_audio_mixer),
9722 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9723 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9724 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9725 msm_routing_put_audio_mixer),
9726 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9727 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9728 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9729 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309730 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9731 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9732 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9733 msm_routing_put_audio_mixer),
9734 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9735 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9736 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9737 msm_routing_put_audio_mixer),
9738 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9739 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9740 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9741 msm_routing_put_audio_mixer),
9742 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9743 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9744 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9745 msm_routing_put_audio_mixer),
9746 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9747 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9748 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9749 msm_routing_put_audio_mixer),
9750 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9751 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9752 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9753 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009754 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9755 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9756 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9757 msm_routing_put_audio_mixer),
9758 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9759 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9760 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9761 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309762 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9763 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9764 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9765 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309766 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9767 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9768 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9769 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309770};
9771
9772static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009773 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9774 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309775 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009777 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9778 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309779 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009781 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9782 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309783 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009785 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9786 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309787 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009789 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9790 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309791 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009793 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9794 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309795 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009797 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9798 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309799 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009801 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9802 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309803 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009805 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9806 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309807 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009809 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9810 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309811 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009813 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9814 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309815 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009817 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9818 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309819 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009821 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9822 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309823 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009825 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9826 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309827 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009829 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9830 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309831 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009833 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9834 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309835 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009837 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9838 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309839 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009841 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9842 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309843 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009845 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9846 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309847 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009849 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9850 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309851 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009853 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9854 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309855 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009857 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9858 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309859 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009861 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9862 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309863 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009865 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9866 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309867 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009869 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9870 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309871 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009873 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9874 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309875 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009877 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9878 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309879 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009881 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9882 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309883 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009885 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9886 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309887 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009889 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9890 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309891 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009893 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9894 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309895 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009897 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9898 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309899 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009901 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9902 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309903 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009905 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9906 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309907 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9908 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309909 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9910 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9911 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9912 msm_routing_put_audio_mixer),
9913 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9914 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9915 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9916 msm_routing_put_audio_mixer),
9917 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9918 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9919 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9920 msm_routing_put_audio_mixer),
9921 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9922 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9923 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9924 msm_routing_put_audio_mixer),
9925 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9926 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9927 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9928 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309929 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9930 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9931 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9932 msm_routing_put_audio_mixer),
9933 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9934 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9935 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9936 msm_routing_put_audio_mixer),
9937 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9938 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9939 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9940 msm_routing_put_audio_mixer),
9941 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9942 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9943 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9944 msm_routing_put_audio_mixer),
9945 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9946 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9947 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9948 msm_routing_put_audio_mixer),
9949 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9950 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9951 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9952 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009953 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9954 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9955 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9956 msm_routing_put_audio_mixer),
9957 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9958 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9959 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9960 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309961 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9962 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9963 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9964 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309965};
9966
9967static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009968 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9969 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309970 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009972 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9973 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309974 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009976 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9977 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309978 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009980 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9981 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309982 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009984 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9985 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309986 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009988 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9989 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309990 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009992 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9993 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309994 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009996 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9997 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309998 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010000 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10001 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010002 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010004 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10005 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010006 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010008 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10009 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010010 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010012 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10013 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010014 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010016 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10017 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010018 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010020 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10021 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010022 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010024 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10025 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010026 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010028 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10029 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010030 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010032 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10033 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010034 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010036 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10037 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010038 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010040 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10041 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010042 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010044 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10045 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010046 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010048 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10049 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010050 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010052 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10053 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010054 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010056 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10057 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010058 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010060 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10061 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010062 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010064 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10065 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010066 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010068 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10069 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010070 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010072 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10073 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010074 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010076 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10077 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010078 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010080 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10081 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010082 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010084 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10085 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010086 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010088 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10089 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010090 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010092 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10093 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010094 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010096 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10097 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010098 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10099 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010100 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10101 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10102 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10103 msm_routing_put_audio_mixer),
10104 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10105 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10106 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10107 msm_routing_put_audio_mixer),
10108 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10109 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10110 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10111 msm_routing_put_audio_mixer),
10112 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10113 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10114 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10115 msm_routing_put_audio_mixer),
10116 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10117 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10118 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10119 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010120 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10121 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10122 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10123 msm_routing_put_audio_mixer),
10124 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10125 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10126 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10127 msm_routing_put_audio_mixer),
10128 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10129 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10130 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10131 msm_routing_put_audio_mixer),
10132 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10133 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10134 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10135 msm_routing_put_audio_mixer),
10136 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10137 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10138 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10139 msm_routing_put_audio_mixer),
10140 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10141 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10142 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10143 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010144 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10145 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10146 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10147 msm_routing_put_audio_mixer),
10148 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10149 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10150 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10151 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010152 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10153 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10154 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10155 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010156};
10157
10158static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010159 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10160 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010161 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010163 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10164 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010165 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010167 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10168 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010169 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010171 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10172 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010173 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010175 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10176 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010177 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010179 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10180 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010181 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010183 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10184 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010185 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010187 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10188 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010189 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010191 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10192 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010193 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010195 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10196 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010197 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010199 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10200 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010201 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010203 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10204 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010205 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010207 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10208 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010209 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010211 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10212 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010213 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010215 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10216 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010217 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010219 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10220 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010221 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010223 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10224 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010225 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010227 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10228 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010229 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010231 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10232 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010233 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010235 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10236 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010237 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010239 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10240 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010241 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010243 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10244 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010245 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010247 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10248 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010249 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010251 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10252 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010253 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010255 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10256 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010257 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010259 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10260 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010261 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010263 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10264 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010265 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010267 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10268 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010269 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010271 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10272 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010273 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010275 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10276 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010277 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010279 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10280 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010281 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010283 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10284 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010285 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010287 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10288 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010289 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010291 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10292 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010293 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010295 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10296 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010297 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010299 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10300 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010301 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010303 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10304 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010305 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010307 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10308 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010309 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010311 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10312 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010313 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10314 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010315 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10316 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10317 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10318 msm_routing_put_audio_mixer),
10319 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10320 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10321 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10322 msm_routing_put_audio_mixer),
10323 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10324 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10325 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10326 msm_routing_put_audio_mixer),
10327 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10328 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10329 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10330 msm_routing_put_audio_mixer),
10331 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10332 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10333 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10334 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010335 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10336 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10337 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10338 msm_routing_put_audio_mixer),
10339 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10340 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10341 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10342 msm_routing_put_audio_mixer),
10343 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10344 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10345 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10346 msm_routing_put_audio_mixer),
10347 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10348 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10349 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10350 msm_routing_put_audio_mixer),
10351 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10352 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10353 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10354 msm_routing_put_audio_mixer),
10355 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10356 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10357 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10358 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010359 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10360 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10361 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10362 msm_routing_put_audio_mixer),
10363 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10364 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10365 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10366 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010367 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10368 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10369 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10370 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010371 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10372 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10373 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10374 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010375};
10376
10377static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010378 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10379 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010380 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010382 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10383 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010384 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010386 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10387 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010388 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010390 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10391 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010392 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010394 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10395 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010396 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010398 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10399 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010400 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010402 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10403 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010404 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010406 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10407 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010408 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010410 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10411 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010412 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010414 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10415 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010416 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010418 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10419 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010420 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010422 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10423 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010424 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010426 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10427 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010428 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010430 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10431 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010432 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010434 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10435 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010436 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010438 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10439 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010440 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010442 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10443 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010444 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010446 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10447 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010448 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010450 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10451 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010452 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010454 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10455 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010456 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010458 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10459 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010460 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010462 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10463 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010464 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010466 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10467 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010468 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010470 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10471 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010472 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010474 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10475 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010476 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010478 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10479 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010480 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010482 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10483 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010484 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010486 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10487 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010488 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010490 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10491 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010492 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010494 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10495 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010496 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010498 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10499 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010500 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010502 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10503 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010504 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010506 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10507 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010508 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010510 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10511 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010512 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10513 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010514 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10515 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10516 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10517 msm_routing_put_audio_mixer),
10518 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10519 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10520 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10521 msm_routing_put_audio_mixer),
10522 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10523 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10524 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10525 msm_routing_put_audio_mixer),
10526 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10527 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10528 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10529 msm_routing_put_audio_mixer),
10530 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10531 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10532 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10533 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010534 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10535 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10536 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10537 msm_routing_put_audio_mixer),
10538 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10539 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10540 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10541 msm_routing_put_audio_mixer),
10542 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10543 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10544 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10545 msm_routing_put_audio_mixer),
10546 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10547 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10548 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10549 msm_routing_put_audio_mixer),
10550 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10551 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10552 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10553 msm_routing_put_audio_mixer),
10554 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10555 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10556 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10557 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010558 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10559 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10560 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10561 msm_routing_put_audio_mixer),
10562 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10563 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10564 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10565 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010566 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10567 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10568 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10569 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010570};
10571
10572static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010573 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10574 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010575 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010577 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10578 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010579 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010581 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10582 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010583 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010585 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10586 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010587 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010589 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10590 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010591 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010593 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10594 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010595 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010597 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10598 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010599 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010601 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10602 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010603 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010605 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10606 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010607 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010609 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10610 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010611 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010613 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10614 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010615 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010617 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10618 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010619 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010621 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10622 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010623 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010625 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10626 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010627 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010629 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10630 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010631 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010633 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10634 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010635 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010637 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10638 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010639 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010641 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10642 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010643 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010645 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10646 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010647 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010649 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10650 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010651 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010653 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10654 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010655 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010657 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10658 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010659 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010661 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10662 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010663 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010665 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10666 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010667 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010669 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10670 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010671 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010673 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10674 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010675 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010677 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10678 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010679 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010681 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10682 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010683 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010685 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10686 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010687 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010689 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10690 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010691 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010693 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10694 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010695 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010697 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10698 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010699 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010701 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10702 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010703 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010705 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10706 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010707 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010709 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10710 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010711 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10712 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010713 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10714 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10715 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10716 msm_routing_put_audio_mixer),
10717 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10718 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10719 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10720 msm_routing_put_audio_mixer),
10721 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10722 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10723 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10724 msm_routing_put_audio_mixer),
10725 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10726 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10727 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10728 msm_routing_put_audio_mixer),
10729 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10730 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10731 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10732 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010733 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10734 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10735 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10736 msm_routing_put_audio_mixer),
10737 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10738 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10739 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10740 msm_routing_put_audio_mixer),
10741 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10742 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10743 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10744 msm_routing_put_audio_mixer),
10745 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10746 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10747 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10748 msm_routing_put_audio_mixer),
10749 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10750 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10751 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10752 msm_routing_put_audio_mixer),
10753 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10754 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10755 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10756 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010757 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10758 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10759 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10760 msm_routing_put_audio_mixer),
10761 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10762 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10763 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10764 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010765 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10766 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10767 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10768 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010769 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10770 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10771 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10772 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010773};
10774
Asish Bhattacharya34504582017-08-08 12:55:01 +053010775static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010776 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10777 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010778 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010780 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10781 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010782 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010784 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10785 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010786 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010788 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10789 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010790 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010792 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10793 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010794 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010796 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10797 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010798 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010800 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10801 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010802 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010804 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10805 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010806 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010808 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10809 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010810 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010812 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10813 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010814 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010816 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10817 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010818 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010820 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10821 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010822 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010824 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10825 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010826 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010828 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10829 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010830 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010832 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10833 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010834 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010836 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10837 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010838 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010840 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10841 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010842 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010844 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10845 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010846 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010848 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10849 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010850 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010852 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10853 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010854 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010856 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10857 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010858 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010860 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10861 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010862 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010864 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10865 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010866 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010868 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10869 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010870 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010872 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10873 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010874 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010876 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10877 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010878 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010880 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10881 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010882 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010884 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10885 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010886 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010888 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10889 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010890 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010892 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10893 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010894 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010896 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10897 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010898 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010900 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10901 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010902 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010904 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10905 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010906 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010908 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10909 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010910 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010912 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10913 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010914 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10915 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010916 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10917 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10918 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10919 msm_routing_put_audio_mixer),
10920 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10921 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10922 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10923 msm_routing_put_audio_mixer),
10924 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10925 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10926 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10927 msm_routing_put_audio_mixer),
10928 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10929 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10930 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10931 msm_routing_put_audio_mixer),
10932 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10933 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10934 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10935 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010936 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10937 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10938 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10939 msm_routing_get_audio_mixer,
10940 msm_routing_put_audio_mixer),
10941 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10942 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10943 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10944 msm_routing_get_audio_mixer,
10945 msm_routing_put_audio_mixer),
10946 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10947 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10948 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10949 msm_routing_get_audio_mixer,
10950 msm_routing_put_audio_mixer),
10951 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10952 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10953 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10954 msm_routing_get_audio_mixer,
10955 msm_routing_put_audio_mixer),
10956 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10957 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10958 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10959 msm_routing_get_audio_mixer,
10960 msm_routing_put_audio_mixer),
10961 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10962 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10963 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10964 msm_routing_get_audio_mixer,
10965 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010966 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10967 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10968 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10969 msm_routing_put_audio_mixer),
10970 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10971 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10972 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10973 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010974 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10975 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10976 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10977 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010978 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10979 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10980 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10981 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053010982};
10983
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010984static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010985 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10986 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010987 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010989 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10990 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010991 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010993 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10994 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010995 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010997 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10998 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010999 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011001 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11002 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011003 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011005 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11006 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011007 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011009 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11010 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011011 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011013 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11014 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011015 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011017 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11018 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011019 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011021 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11022 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011023 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011025 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11026 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011027 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011029 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11030 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011031 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011033 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11034 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011035 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011037 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11038 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011039 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011041 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11042 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011043 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011045 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11046 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011047 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011049 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11050 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011051 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011053 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11054 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011055 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011057 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11058 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011059 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011061 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11062 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011063 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11064 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011065 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11066 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11067 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11068 msm_routing_put_audio_mixer),
11069 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11070 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11071 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11072 msm_routing_put_audio_mixer),
11073 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11074 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11075 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11076 msm_routing_put_audio_mixer),
11077 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11078 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11079 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11080 msm_routing_put_audio_mixer),
11081 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11082 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11083 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11084 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011085 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11086 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11087 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11088 msm_routing_put_audio_mixer),
11089 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11090 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11091 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11092 msm_routing_put_audio_mixer),
11093 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11094 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11095 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11096 msm_routing_put_audio_mixer),
11097 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11098 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11099 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11100 msm_routing_put_audio_mixer),
11101 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11102 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11103 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11104 msm_routing_put_audio_mixer),
11105 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11106 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11107 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11108 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011109 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11110 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11111 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11112 msm_routing_put_audio_mixer),
11113 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11114 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11115 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11116 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011117 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11118 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11119 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11120 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011121};
11122
Laxminath Kasam38070be2017-08-17 18:21:59 +053011123static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011124 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11125 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011126 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011128 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11129 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011130 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011132 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11133 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011134 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011136 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11137 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011138 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011140 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11141 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011142 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011144 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11145 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011146 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011148 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11149 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011150 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011152 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11153 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011154 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011156 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11157 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011158 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011160 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11161 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011162 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011164 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11165 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011166 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011168 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11169 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011170 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011172 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11173 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011174 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011176 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11177 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011178 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011180 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11181 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011182 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011184 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11185 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011186 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011188 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11189 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011190 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011192 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11193 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011194 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011196 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11197 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011198 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011200 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11201 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011202 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011204 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11205 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011206 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011208 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11209 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011210 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011212 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11213 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011214 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011216 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11217 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011218 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011220 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11221 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011222 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011224 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11225 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011226 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11227 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011228 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11229 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11230 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11231 msm_routing_put_audio_mixer),
11232 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11233 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11234 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11235 msm_routing_put_audio_mixer),
11236 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11237 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11238 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11239 msm_routing_put_audio_mixer),
11240 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11241 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11242 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11243 msm_routing_put_audio_mixer),
11244 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11245 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11246 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11247 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011248 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11249 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11250 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11251 msm_routing_get_audio_mixer,
11252 msm_routing_put_audio_mixer),
11253 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11254 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11255 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11256 msm_routing_get_audio_mixer,
11257 msm_routing_put_audio_mixer),
11258 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11259 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11260 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11261 msm_routing_get_audio_mixer,
11262 msm_routing_put_audio_mixer),
11263 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11264 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11265 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11266 msm_routing_get_audio_mixer,
11267 msm_routing_put_audio_mixer),
11268 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11269 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11270 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11271 msm_routing_get_audio_mixer,
11272 msm_routing_put_audio_mixer),
11273 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11274 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11275 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11276 msm_routing_get_audio_mixer,
11277 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011278 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11279 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11280 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11281 msm_routing_put_audio_mixer),
11282 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11283 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11284 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11285 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011286 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11287 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11288 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11289 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011290 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11291 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11292 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11293 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011294};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011295static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011296 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11297 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011298 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011300 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11301 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011302 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011304 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11305 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011306 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011308 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11309 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011310 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011312 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11313 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011314 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011316 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11317 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011318 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011320 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11321 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011322 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011324 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11325 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011326 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11327 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011328 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11329 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11330 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11331 msm_routing_put_audio_mixer),
11332 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11333 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11334 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11335 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011336 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11337 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11338 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11339 msm_routing_put_audio_mixer),
11340 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11341 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11342 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11343 msm_routing_put_audio_mixer),
11344 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11345 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11346 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11347 msm_routing_put_audio_mixer),
11348 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11349 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11350 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11351 msm_routing_put_audio_mixer),
11352 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11353 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11354 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11355 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011356 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11357 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11358 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11359 msm_routing_get_audio_mixer,
11360 msm_routing_put_audio_mixer),
11361 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11362 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11363 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11364 msm_routing_get_audio_mixer,
11365 msm_routing_put_audio_mixer),
11366 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11367 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11368 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11369 msm_routing_get_audio_mixer,
11370 msm_routing_put_audio_mixer),
11371 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11372 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11373 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11374 msm_routing_get_audio_mixer,
11375 msm_routing_put_audio_mixer),
11376 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11377 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11378 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11379 msm_routing_get_audio_mixer,
11380 msm_routing_put_audio_mixer),
11381 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11382 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11383 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11384 msm_routing_get_audio_mixer,
11385 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011386 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11387 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11388 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11389 msm_routing_put_audio_mixer),
11390 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11391 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11392 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11393 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011394 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11395 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11396 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11397 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011398};
11399
11400static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011401 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11402 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011403 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011405 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11406 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011407 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011409 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11410 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011411 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11412 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011413 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11414 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11415 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11416 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011417 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11418 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11419 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011421 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11422 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011423 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011425 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11426 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011427 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011429 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11430 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011431 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011433 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11434 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011435 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011437 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11438 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011439 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011441 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11442 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011443 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11444 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011445 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11446 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11447 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11448 msm_routing_put_audio_mixer),
11449 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11450 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11451 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11452 msm_routing_put_audio_mixer),
11453 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11454 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11455 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11456 msm_routing_put_audio_mixer),
11457 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11458 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11459 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11460 msm_routing_put_audio_mixer),
11461 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11462 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11463 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11464 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011465 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11466 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11467 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11468 msm_routing_get_audio_mixer,
11469 msm_routing_put_audio_mixer),
11470 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11471 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11472 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11473 msm_routing_get_audio_mixer,
11474 msm_routing_put_audio_mixer),
11475 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11476 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11477 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11478 msm_routing_get_audio_mixer,
11479 msm_routing_put_audio_mixer),
11480 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11481 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11482 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11483 msm_routing_get_audio_mixer,
11484 msm_routing_put_audio_mixer),
11485 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11486 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11487 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11488 msm_routing_get_audio_mixer,
11489 msm_routing_put_audio_mixer),
11490 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11491 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11492 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11493 msm_routing_get_audio_mixer,
11494 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011495 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11496 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11497 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11498 msm_routing_put_audio_mixer),
11499 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11500 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11501 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11502 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011503 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11504 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11505 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11506 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011507};
11508
11509static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011510 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11511 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011512 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011514 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011516 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011518 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011520 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011522 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11523 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011524 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011526 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11527 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011528 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011530 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11531 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011532 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011534 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11535 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011536 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011538 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11539 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011540 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11541 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011542 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11543 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11544 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11545 msm_routing_put_audio_mixer),
11546 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11547 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11548 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11549 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011550 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11551 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11552 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11553 msm_routing_put_audio_mixer),
11554 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11555 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11556 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11557 msm_routing_put_audio_mixer),
11558 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11559 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11560 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11561 msm_routing_put_audio_mixer),
11562 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11563 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11564 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11565 msm_routing_put_audio_mixer),
11566 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11567 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11568 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11569 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011570 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11571 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11572 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11573 msm_routing_get_audio_mixer,
11574 msm_routing_put_audio_mixer),
11575 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11576 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11577 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11578 msm_routing_get_audio_mixer,
11579 msm_routing_put_audio_mixer),
11580 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11581 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11582 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11583 msm_routing_get_audio_mixer,
11584 msm_routing_put_audio_mixer),
11585 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11586 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11587 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11588 msm_routing_get_audio_mixer,
11589 msm_routing_put_audio_mixer),
11590 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11591 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11592 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11593 msm_routing_get_audio_mixer,
11594 msm_routing_put_audio_mixer),
11595 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11596 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11597 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11598 msm_routing_get_audio_mixer,
11599 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011600 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11601 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11602 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11603 msm_routing_put_audio_mixer),
11604 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11605 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11606 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11607 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011608 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11609 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11610 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11611 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011612};
11613
11614static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011615 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011617 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011619 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11620 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011621 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011623 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11624 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011625 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011627 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11628 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011629 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011631 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11632 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011633 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011635 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11636 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011637 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011639 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11640 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011641 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011643 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11644 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011645 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011647 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11648 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011649 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011651 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11652 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011653 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011655 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11656 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011657 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011659 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11660 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011661 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011663 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11664 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011665 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011667 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11668 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011669 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011671 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11672 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011673 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011675 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11676 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011677 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011679 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11680 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011681 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011683 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11684 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011685 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011687 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11688 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011689 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011691 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11692 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011693 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011695 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11696 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011697 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011699 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11700 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011701 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011703 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11704 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011705 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011707 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11708 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011709 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011711 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11712 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011713 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11714 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011715 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11716 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11717 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11718 msm_routing_put_audio_mixer),
11719 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11720 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11721 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11722 msm_routing_put_audio_mixer),
11723 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11724 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11725 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11726 msm_routing_put_audio_mixer),
11727 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11728 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11729 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11730 msm_routing_put_audio_mixer),
11731 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11732 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11733 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11734 msm_routing_put_audio_mixer),
11735 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11736 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11737 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11738 msm_routing_put_audio_mixer),
11739 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11740 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11741 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11742 msm_routing_put_audio_mixer),
11743 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11744 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11745 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11746 msm_routing_put_audio_mixer),
11747 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11748 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11749 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11750 msm_routing_put_audio_mixer),
11751 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11752 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11753 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11754 msm_routing_put_audio_mixer),
11755 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11756 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11757 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11758 msm_routing_put_audio_mixer),
11759 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11760 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11761 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11762 msm_routing_put_audio_mixer),
11763 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11764 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11765 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11766 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011767 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11768 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11769 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11770 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011771};
11772
11773static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11774 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11775 MSM_BACKEND_DAI_AUXPCM_TX,
11776 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11777 msm_routing_put_audio_mixer),
11778 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11779 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11780 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11781 msm_routing_put_audio_mixer),
11782 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11783 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11784 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11785 msm_routing_put_audio_mixer),
11786 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11787 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11788 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11789 msm_routing_put_audio_mixer),
11790 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11791 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11792 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11793 msm_routing_put_audio_mixer),
11794 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11795 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11796 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11797 msm_routing_put_audio_mixer),
11798 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11799 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11800 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11801 msm_routing_put_audio_mixer),
11802 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11803 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11804 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11805 msm_routing_put_audio_mixer),
11806 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11807 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11808 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11809 msm_routing_put_audio_mixer),
11810 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11811 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11812 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11813 msm_routing_put_audio_mixer),
11814 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11815 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11816 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11817 msm_routing_put_audio_mixer),
11818 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11819 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11820 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11821 msm_routing_put_audio_mixer),
11822 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11823 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11824 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11825 msm_routing_put_audio_mixer),
11826 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11827 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11828 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11829 msm_routing_put_audio_mixer),
11830 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11831 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11832 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11833 msm_routing_put_audio_mixer),
11834 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11835 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11836 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11837 msm_routing_put_audio_mixer),
11838 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11839 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11840 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11841 msm_routing_put_audio_mixer),
11842 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11843 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11844 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11845 msm_routing_put_audio_mixer),
11846 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11847 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11848 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11849 msm_routing_put_audio_mixer),
11850 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11851 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11852 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11853 msm_routing_put_audio_mixer),
11854 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11855 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11856 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11857 msm_routing_put_audio_mixer),
11858 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11859 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11860 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11861 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011862 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011863 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11864 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011865 msm_routing_put_audio_mixer),
11866 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011867 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11868 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011869 msm_routing_put_audio_mixer),
11870 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011871 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11872 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011873 msm_routing_put_audio_mixer),
11874 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011875 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11876 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011877 msm_routing_put_audio_mixer),
11878 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011879 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11880 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011881 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011882 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011883 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11884 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11885 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011886 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011887 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11888 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11889 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011890 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011891 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11892 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11893 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011894 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011895 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11896 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11897 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011898 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011899 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11900 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11901 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011902 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011903 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11904 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11905 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011906 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11907 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011908 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011909 msm_routing_put_audio_mixer),
11910 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11911 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011912 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011913 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011914 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11915 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11916 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11917 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011918};
11919
Surendar Karkac1cde372018-08-14 18:56:24 +053011920static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
11921 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11922 MSM_BACKEND_DAI_SLIMBUS_0_TX,
11923 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11924 msm_routing_put_audio_mixer),
11925 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11926 MSM_BACKEND_DAI_SLIMBUS_6_TX,
11927 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11928 msm_routing_put_audio_mixer),
11929 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11930 MSM_BACKEND_DAI_SLIMBUS_7_TX,
11931 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11932 msm_routing_put_audio_mixer),
11933 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11934 MSM_BACKEND_DAI_PRI_MI2S_TX,
11935 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11936 msm_routing_put_audio_mixer),
11937 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11938 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11939 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11940 msm_routing_put_audio_mixer),
11941 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11942 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11943 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11944 msm_routing_put_audio_mixer),
11945 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11946 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11947 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11948 msm_routing_put_audio_mixer),
11949 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11950 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
11951 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11952 msm_routing_put_audio_mixer),
11953 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11954 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11955 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11956 msm_routing_put_audio_mixer),
11957 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11958 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11959 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11960 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011961 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11962 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11963 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11964 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011965 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11966 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11967 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11968 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053011969};
11970
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011971static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011972 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11973 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011974 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011976 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11977 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011978 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011980 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11981 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011982 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011984 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11985 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011986 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011988 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11989 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011990 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011992 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11993 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011994 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011996 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11997 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011998 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012000 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12001 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012002 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12003 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012004 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12005 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12006 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12007 msm_routing_put_audio_mixer),
12008 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12009 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12010 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12011 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012012 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12013 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12014 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12015 msm_routing_put_audio_mixer),
12016 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12017 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12018 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12019 msm_routing_put_audio_mixer),
12020 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12021 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12022 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12023 msm_routing_put_audio_mixer),
12024 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12025 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12026 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12027 msm_routing_put_audio_mixer),
12028 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12029 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12030 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12031 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012032 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12033 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12034 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12035 msm_routing_get_audio_mixer,
12036 msm_routing_put_audio_mixer),
12037 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12038 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12039 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12040 msm_routing_get_audio_mixer,
12041 msm_routing_put_audio_mixer),
12042 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12043 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12044 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12045 msm_routing_get_audio_mixer,
12046 msm_routing_put_audio_mixer),
12047 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12048 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12049 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12050 msm_routing_get_audio_mixer,
12051 msm_routing_put_audio_mixer),
12052 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12053 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12054 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12055 msm_routing_get_audio_mixer,
12056 msm_routing_put_audio_mixer),
12057 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12058 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12059 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12060 msm_routing_get_audio_mixer,
12061 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012062 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12063 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12064 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12065 msm_routing_put_audio_mixer),
12066 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12067 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12068 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12069 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012070 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12071 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12072 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12073 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012074};
12075
12076static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012077 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12078 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012079 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012081 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12082 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012083 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012085 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12086 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012087 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012089 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12090 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012091 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012093 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12094 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012095 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012097 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12098 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012099 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012101 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12102 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012103 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012105 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12106 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012107 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12108 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012109 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12110 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12111 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12112 msm_routing_put_audio_mixer),
12113 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12114 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12115 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12116 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012117 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12118 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12119 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12120 msm_routing_put_audio_mixer),
12121 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12122 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12123 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12124 msm_routing_put_audio_mixer),
12125 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12126 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12127 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12128 msm_routing_put_audio_mixer),
12129 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12130 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12131 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12132 msm_routing_put_audio_mixer),
12133 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12134 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12135 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12136 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012137 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12138 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12139 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12140 msm_routing_get_audio_mixer,
12141 msm_routing_put_audio_mixer),
12142 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12143 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12144 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12145 msm_routing_get_audio_mixer,
12146 msm_routing_put_audio_mixer),
12147 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12148 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12149 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12150 msm_routing_get_audio_mixer,
12151 msm_routing_put_audio_mixer),
12152 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12153 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12154 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12155 msm_routing_get_audio_mixer,
12156 msm_routing_put_audio_mixer),
12157 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12158 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12159 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12160 msm_routing_get_audio_mixer,
12161 msm_routing_put_audio_mixer),
12162 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12163 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12164 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12165 msm_routing_get_audio_mixer,
12166 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012167 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12168 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12169 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12170 msm_routing_put_audio_mixer),
12171 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12172 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12173 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12174 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012175 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12176 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12177 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12178 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012179};
12180
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012181static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012182 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12183 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012184 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12185 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012186 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12187 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012188 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12189 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012190 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12191 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012192 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12193 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012194 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12195 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012196 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12197 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012198 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12199 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012200 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12201 msm_routing_put_voice_mixer),
12202};
12203
12204static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012205 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12206 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012207 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12208 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012209 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12210 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012211 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12212 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012213 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12214 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012215 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12216 msm_routing_put_voice_mixer),
12217};
12218
12219static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012220 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12221 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012222 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12223 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012224 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12225 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012226 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12227 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012228 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12229 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012230 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12231 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012232 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12233 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012234 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12235 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012236 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12237 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012238 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12239 msm_routing_put_voice_mixer),
12240};
12241
12242static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012243 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12244 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012245 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12246 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012247 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12248 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012249 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12250 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012251 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12252 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012253 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12254 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012255 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12256 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012257 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12258 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012259 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12260 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012261 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12262 msm_routing_put_voice_mixer),
12263};
12264
12265static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012266 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12267MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012268 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12269 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012270 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12271MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012272 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12273 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012274 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12275MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012276 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12277 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012278 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12279MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012280 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12281 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012282 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12283MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012284 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12285 msm_routing_put_voice_mixer),
12286};
12287
12288static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012289 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12290 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012291 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12292 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012293 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12294 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012295 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12296 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012297 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12298 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012299 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12300 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012301 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12302 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012303 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12304 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012305 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12306 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012307 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12308 msm_routing_put_voice_mixer),
12309};
12310
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012311static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012312 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12313MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012314 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12315 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012316 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12317MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012318 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12319 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012320 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12321MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012322 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12323 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012324 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12325MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012326 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12327 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012328 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12329MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012330 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12331 msm_routing_put_voice_mixer),
12332};
12333
Karthikeyan Mani57550082018-05-03 18:43:58 -070012334static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12335 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12336 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12337 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12338 msm_routing_put_voice_mixer),
12339 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12340 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12341 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12342 msm_routing_put_voice_mixer),
12343 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12344 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12345 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12346 msm_routing_put_voice_mixer),
12347 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12348 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12349 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12350 msm_routing_put_voice_mixer),
12351 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12352 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12353 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12354 msm_routing_put_voice_mixer),
12355};
12356
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012357static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012358 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12359 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012360 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12361 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012362 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12363 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012364 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12365 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012366 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12367 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012368 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12369 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012370 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12371 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012372 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12373 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012374 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12375 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012376 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12377 msm_routing_put_voice_mixer),
12378};
12379
12380static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012381 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12382 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012383 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12384 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012385 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12386 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012387 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12388 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012389 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12390 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012391 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12392 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012393 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012395 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12396 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012397 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012399 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12400 msm_routing_put_voice_mixer),
12401};
12402
12403static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012404 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12405MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012406 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12407 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012408 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12409MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012410 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12411 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012412 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12413MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012414 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12415 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012416 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12417MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012418 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12419 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012420 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12421MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012422 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12423 msm_routing_put_voice_mixer),
12424};
12425
12426static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012427 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12428MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012429 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12430 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012431 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12432MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012433 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12434 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012435 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12436MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012437 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12438 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012439 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12440MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012441 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12442 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012443 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12444MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012445 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12446 msm_routing_put_voice_mixer),
12447};
12448
12449static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012450 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12451 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012452 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12453 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012454 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12455 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012456 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12457 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012458 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12459 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012460 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12461 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012462 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12463 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012464 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12465 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012466 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012468 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12469 msm_routing_put_voice_mixer),
12470};
12471
12472static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012473 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12474 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012475 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12476 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012477 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12478 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012479 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12480 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012481 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12482 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012483 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12484 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012485 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12486 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012487 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12488 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012489 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12490 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012491 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12492 msm_routing_put_voice_mixer),
12493};
12494
12495static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012496 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12497 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012498 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12499 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012500 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12501 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012502 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12503 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012504 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12505 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012506 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12507 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012508 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12509 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012510 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12511 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012512 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12513 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012514 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12515 msm_routing_put_voice_mixer),
12516};
12517
12518static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012519 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12520 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012521 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12522 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012523 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12524 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012525 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12526 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012527 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12528 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012529 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12530 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012531 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12532 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012533 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12534 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012535 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12536 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012537 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12538 msm_routing_put_voice_mixer),
12539};
12540
12541static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012542 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12543 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012544 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12545 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012546 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12547 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012548 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12549 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012550 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12551 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012552 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12553 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012554 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12555 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012556 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12557 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012558 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12559 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012560 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12561 msm_routing_put_voice_mixer),
12562};
12563
12564static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012565 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12566 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012567 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12568 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012569 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12570 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012571 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12572 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012573 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12574 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012575 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12576 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012577 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12578 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012579 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12580 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012581 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12582 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012583 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12584 msm_routing_put_voice_mixer),
12585};
12586
12587static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012588 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12589MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012590 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12591 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012592 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12593MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012594 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12595 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012596 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12597MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012598 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12599 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012600 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12601MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012602 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12603 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012604 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12605MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012606 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12607 msm_routing_put_voice_mixer),
12608};
12609
12610static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012611 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12612MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012613 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12614 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012615 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12616MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012617 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12618 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012619 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12620MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012621 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12622 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012623 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12624MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012625 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12626 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012627 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12628MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012629 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12630 msm_routing_put_voice_mixer),
12631};
12632
12633static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012634 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12635MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012636 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12637 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012638 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12639MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012640 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12641 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012642 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12643MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012644 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12645 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012646 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12647MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012648 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12649 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012650 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12651MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012652 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12653 msm_routing_put_voice_mixer),
12654};
12655
Rohit Kumara5077932017-09-10 22:05:05 +053012656static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012657 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12658MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012659 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12660 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012661 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12662MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012663 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12664 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012665 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12666MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012667 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12668 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012669 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12670MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012671 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12672 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012673 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12674MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012675 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12676 msm_routing_put_voice_mixer),
12677};
12678
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012679static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012680 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12681 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012682 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12683 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012684 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12685 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012686 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12687 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012688 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12689 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012690 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12691 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012692 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12693 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012694 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12695 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012696 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12697 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012698 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12699 msm_routing_put_voice_mixer),
12700};
12701
12702static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012703 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12704MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012705 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12706 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012707 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12708MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012709 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12710 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012711 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12712MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012713 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12714 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012715 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12716MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012717 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12718 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012719 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12720MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012721 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12722 msm_routing_put_voice_mixer),
12723};
12724
12725static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012726 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12727 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012728 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12729 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012730 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12731 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012732 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12733 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012734 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12735 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012736 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12737 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012738 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12739 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012740 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12741 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012742 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12743 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012744 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12745 msm_routing_put_voice_mixer),
12746};
12747
12748static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012749 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12750 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012751 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12752 msm_routing_put_voice_mixer),
12753};
12754
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012755static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12756 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12757 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12758 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12759 msm_routing_put_voice_mixer),
12760 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12761 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12762 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12763 msm_routing_put_voice_mixer),
12764 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12765 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12766 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12767 msm_routing_put_voice_mixer),
12768 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12769 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12770 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12771 msm_routing_put_voice_mixer),
12772 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12773 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12774 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12775 msm_routing_put_voice_mixer),
12776};
12777
12778static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12779 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12780 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12781 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12782 msm_routing_put_voice_mixer),
12783 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12784 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12785 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12786 msm_routing_put_voice_mixer),
12787 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12788 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12789 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12790 msm_routing_put_voice_mixer),
12791 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12792 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12793 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12794 msm_routing_put_voice_mixer),
12795 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12796 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12797 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12798 msm_routing_put_voice_mixer),
12799};
12800
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012801static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12802 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12803 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12804 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12805 msm_routing_put_voice_mixer),
12806 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12807 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12808 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12809 msm_routing_put_voice_mixer),
12810 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12811 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12812 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12813 msm_routing_put_voice_mixer),
12814 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12815 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12816 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12817 msm_routing_put_voice_mixer),
12818 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12819 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12820 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12821 msm_routing_put_voice_mixer),
12822};
12823
12824static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12825 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12826 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12827 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12828 msm_routing_put_voice_mixer),
12829 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12830 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12831 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12832 msm_routing_put_voice_mixer),
12833 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12834 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12835 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12836 msm_routing_put_voice_mixer),
12837 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12838 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12839 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12840 msm_routing_put_voice_mixer),
12841 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12842 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12843 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12844 msm_routing_put_voice_mixer),
12845};
12846
12847static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12848 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12849 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12850 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12851 msm_routing_put_voice_mixer),
12852 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12853 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12854 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12855 msm_routing_put_voice_mixer),
12856 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12857 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12858 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12859 msm_routing_put_voice_mixer),
12860 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12861 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12862 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12863 msm_routing_put_voice_mixer),
12864 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12865 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12866 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12867 msm_routing_put_voice_mixer),
12868};
12869
12870static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12871 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12872 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12873 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12874 msm_routing_put_voice_mixer),
12875 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12876 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12877 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12878 msm_routing_put_voice_mixer),
12879 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12880 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12881 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12882 msm_routing_put_voice_mixer),
12883 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12884 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12885 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12886 msm_routing_put_voice_mixer),
12887 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12888 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12889 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12890 msm_routing_put_voice_mixer),
12891};
12892
12893static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12894 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12895 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12896 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12897 msm_routing_put_voice_mixer),
12898 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12899 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12900 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12901 msm_routing_put_voice_mixer),
12902 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12903 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12904 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12905 msm_routing_put_voice_mixer),
12906 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12907 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12908 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12909 msm_routing_put_voice_mixer),
12910 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12911 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12912 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12913 msm_routing_put_voice_mixer),
12914};
12915
12916static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12917 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12918 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12919 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12920 msm_routing_put_voice_mixer),
12921 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12922 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12923 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12924 msm_routing_put_voice_mixer),
12925 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12926 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12927 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12928 msm_routing_put_voice_mixer),
12929 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12930 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12931 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12932 msm_routing_put_voice_mixer),
12933 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12934 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12935 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12936 msm_routing_put_voice_mixer),
12937};
12938
12939static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
12940 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12941 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12942 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12943 msm_routing_put_voice_mixer),
12944 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12945 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12946 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12947 msm_routing_put_voice_mixer),
12948 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12949 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12950 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12951 msm_routing_put_voice_mixer),
12952 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12953 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12954 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12955 msm_routing_put_voice_mixer),
12956 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12957 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12958 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12959 msm_routing_put_voice_mixer),
12960};
12961
12962static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
12963 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12964 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12965 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12966 msm_routing_put_voice_mixer),
12967 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12968 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12969 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12970 msm_routing_put_voice_mixer),
12971 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12972 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12973 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12974 msm_routing_put_voice_mixer),
12975 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12976 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12977 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12978 msm_routing_put_voice_mixer),
12979 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12980 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12981 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12982 msm_routing_put_voice_mixer),
12983};
12984
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012985static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012986 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12987 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012988 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12989 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012990 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12991 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012992 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12993 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012994};
12995
12996static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012997 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12998 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012999 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13000 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013001 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13002 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013003 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13004 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013005};
13006
13007static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013008 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13009 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013010 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13011 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013012 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13013 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013014 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13015 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013016};
13017
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013018static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013019 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
13020 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13022 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013023 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
13024 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013025 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13026 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013027 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013028 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13029 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013030 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013031 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13032 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013033 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013034 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13035 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013036 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13038 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013040 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13041 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013042 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013043 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13044 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013045 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013046 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13047 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013048 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013049 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13050 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013051 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013052 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13053 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013054 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013055 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13056 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013057 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013058 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13059 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013060 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013061 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13062 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013063 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013064 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13065 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013066 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
13067 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013068 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13069 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013070 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
13071MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013072 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013073 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13074 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13075 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13076 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13077 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13078 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013079 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13081 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13082 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13083 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13084 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13085 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13086 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13087 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13088 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
13089 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13090 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13091 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13092 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13093 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13094 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13095 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13096 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013097};
13098
13099static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013100 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13101 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013102 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13103 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013104 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13105 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013106 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13107 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013108 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013109 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13110 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013111 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013112 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13113 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013114 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013115 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13116 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013117 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013118 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13119 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013120 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013121 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13122 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013123 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013124 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13125 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013126 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013127 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13128 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013129 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013130 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13131 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013132 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013133 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13134 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013135 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013136 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13137 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013138 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013139 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13140 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013141 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013142 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13143 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013144 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013145 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13146 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013147 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013148 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13149 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_MMode2", SND_SOC_NOPM,
13151 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13152 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13153 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13154 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13155 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013156 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13157 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13158 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13159 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13160 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13161 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13162 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13164 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13165 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13166 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13167 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13168 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13169 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13170 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13171 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13172 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13173 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013174};
13175
13176static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013177 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13178 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013179 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13180 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013181 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13182 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013183 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13184 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013185 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13186 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013187 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13188 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013189 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13190 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013191 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13192 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013193 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13194 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013195 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13196 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013197 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13198 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013199 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13200 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013201 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13202 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013203 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13204 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013205 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13206 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013207 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13208 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013209 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13210 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013211 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13212 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013213 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13214 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013215 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13216 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013217 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013219 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13220 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013221 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013223 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13224 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013225 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013227 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13228 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013229 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13230 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013231 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13232 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013233 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13234 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013235 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13236 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013237 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13238 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013239 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13240 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013241 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13242 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13243 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13244 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13245 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13246 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013247 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13248 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13249 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13250 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13251 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13252 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13253 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13254 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13255 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13256 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13257 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13258 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13259 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13260 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13261 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13262 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13263 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13264 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013265};
13266
13267static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013268 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13269 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013270 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13271 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013272 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13273 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013274 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13275 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013276 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13277 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013278 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13279 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013280 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013282 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13283 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013284 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013286 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13287 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013288 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13289 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013290 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13291 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013292 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13293 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013294 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13295 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013296 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13297 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013298 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13299 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013300 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13301 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013302 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13303 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013304 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13305 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013306 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13307 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013308 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13309 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013310 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13311 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013312 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13313 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013314 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13315 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013316 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13317 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013318 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13319 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013320 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13321 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013322 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13323 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013324 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13325 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013326 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13327 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013328 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13329 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013330 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13331 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013332 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13333 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013334 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13335 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013336 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13337 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013338 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13339 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013340 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13341 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013342 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13343 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013344 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13345 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13346 1, 0, msm_routing_get_voice_stub_mixer,
13347 msm_routing_put_voice_stub_mixer),
13348 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13349 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13350 1, 0, msm_routing_get_voice_stub_mixer,
13351 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013352 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13353 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13354 1, 0, msm_routing_get_voice_stub_mixer,
13355 msm_routing_put_voice_stub_mixer),
13356 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13357 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13358 1, 0, msm_routing_get_voice_stub_mixer,
13359 msm_routing_put_voice_stub_mixer),
13360 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13361 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13362 1, 0, msm_routing_get_voice_stub_mixer,
13363 msm_routing_put_voice_stub_mixer),
13364 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13365 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13366 1, 0, msm_routing_get_voice_stub_mixer,
13367 msm_routing_put_voice_stub_mixer),
13368 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13369 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13370 1, 0, msm_routing_get_voice_stub_mixer,
13371 msm_routing_put_voice_stub_mixer),
13372 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13373 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13374 1, 0, msm_routing_get_voice_stub_mixer,
13375 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013376};
13377
13378static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013379 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13380 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013381 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13382 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013383 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13384 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013385 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13386 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013387 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13388 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013389 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13390 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013391 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13392 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013393 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13394 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013395 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13396 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013397 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13398 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013399 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13400 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013401 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13402 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013403 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13404 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013405 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13406 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013407 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13408 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013409 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13410 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013411 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13412 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013413 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13414 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013415 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13416 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013417 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13418 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013419 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13420 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013421 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13422 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013423 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13424 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013425 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13426 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013427 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13428 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013429 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13430 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013431 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13432 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013433 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13434 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013435 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13436 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013437 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13438 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013439 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13440 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13441 1, 0, msm_routing_get_voice_stub_mixer,
13442 msm_routing_put_voice_stub_mixer),
13443 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13444 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13445 1, 0, msm_routing_get_voice_stub_mixer,
13446 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013447 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13448 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13449 1, 0, msm_routing_get_voice_stub_mixer,
13450 msm_routing_put_voice_stub_mixer),
13451 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13452 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13453 1, 0, msm_routing_get_voice_stub_mixer,
13454 msm_routing_put_voice_stub_mixer),
13455 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13456 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13457 1, 0, msm_routing_get_voice_stub_mixer,
13458 msm_routing_put_voice_stub_mixer),
13459 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13460 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13461 1, 0, msm_routing_get_voice_stub_mixer,
13462 msm_routing_put_voice_stub_mixer),
13463 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13464 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13465 1, 0, msm_routing_get_voice_stub_mixer,
13466 msm_routing_put_voice_stub_mixer),
13467 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13468 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13469 1, 0, msm_routing_get_voice_stub_mixer,
13470 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013471};
13472
13473static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013474 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13475 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013476 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13477 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013478 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13479 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013480 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13481 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013482 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13483 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013484 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13485 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013486 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13487 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013488 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13489 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013490 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13491 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013492 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13493 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013494 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13495 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013496 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13497 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013498 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13499 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013500 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13501 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013502 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13503 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013504 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13505 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013506 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13507 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013508 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13509 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013510 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13511 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013512 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13513 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013514 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13515 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013516 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13517 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013518 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13519 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013520 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13521 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013522 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13523 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013524 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13525 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013526 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13527 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013528 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13529 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013530 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13531 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013532 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13533 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013534 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13535 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13536 1, 0, msm_routing_get_voice_stub_mixer,
13537 msm_routing_put_voice_stub_mixer),
13538 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13539 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13540 1, 0, msm_routing_get_voice_stub_mixer,
13541 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013542 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13543 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13544 1, 0, msm_routing_get_voice_stub_mixer,
13545 msm_routing_put_voice_stub_mixer),
13546 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13547 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13548 1, 0, msm_routing_get_voice_stub_mixer,
13549 msm_routing_put_voice_stub_mixer),
13550 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13551 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13552 1, 0, msm_routing_get_voice_stub_mixer,
13553 msm_routing_put_voice_stub_mixer),
13554 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13555 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13556 1, 0, msm_routing_get_voice_stub_mixer,
13557 msm_routing_put_voice_stub_mixer),
13558 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13559 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13560 1, 0, msm_routing_get_voice_stub_mixer,
13561 msm_routing_put_voice_stub_mixer),
13562 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13563 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13564 1, 0, msm_routing_get_voice_stub_mixer,
13565 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013566};
13567
13568static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013569 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13570 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013571 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13572 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013573 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13574 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013575 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13576 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013577 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13578 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13579 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013580 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013581 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13582 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013583 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13584 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013585 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013587 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13588 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013589 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013591 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13592 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013593 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13594 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013595 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13596 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013597 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13598 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013599 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13600 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013601 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13602 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013603 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13604 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013605 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13606 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013607 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13608 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013609 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13610 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013611 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13612 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013613 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13614 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013615 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13616 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013617 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13618 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013619 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13620 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013621 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13622 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013623 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13624 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013625 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13626 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013627 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13628 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013629 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013631 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13632 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013633 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13634 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13635 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13636 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13637 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13638 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013639 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13640 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13641 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13642 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13643 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13644 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13645 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13647 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13648 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13649 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13650 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13653 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13654 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13655 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13656 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013657};
13658
13659static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013660 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13661 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013662 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013664 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13665 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013666 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013668 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13669 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013670 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013672 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13673 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013674 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013676 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13677 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013678 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13679 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013680 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13681 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013682 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13683 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013684 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13685 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013686 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013688 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13689 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013690 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013692 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13693 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013694 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013696 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13697 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013698 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13699 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013700 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13701 MSM_BACKEND_DAI_INT0_MI2S_RX,
13702 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13703 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013704};
13705
13706static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013707 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13708 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013709 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013711 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13712 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013713 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013715 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13716 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013717 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13718 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013719 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13720 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013721 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013723 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13724 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013725 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013727 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013729 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013731 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13732 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013733 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013735 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13736 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013737 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013739 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13740 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013741 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013743 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13744 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013745 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13746 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013747 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13748 MSM_BACKEND_DAI_INT4_MI2S_RX,
13749 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13750 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013751};
13752
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013753static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13754 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13755 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13756 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13757 msm_routing_put_port_mixer),
13758 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13759 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13760 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13761 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013762 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13763 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13764 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13765 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013766};
13767
13768static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13769 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13770 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13771 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13772 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013773 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13774 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13775 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13776 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013777 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13778 MSM_BACKEND_DAI_INT4_MI2S_RX,
13779 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13780 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013781};
13782
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013783static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013784 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13785 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013786 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013788 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13789 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013790 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013792 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13793 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013794 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013796 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13797 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013798 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013800 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13801 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013802 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013804 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13805 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013806 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013808 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13809 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013810 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13813 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013814 MSM_BACKEND_DAI_TERT_AUXPCM_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13817 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013818 MSM_BACKEND_DAI_QUAT_AUXPCM_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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13821 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013822 MSM_BACKEND_DAI_QUIN_AUXPCM_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("MI2S_TX", SND_SOC_NOPM,
13825 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013826 MSM_BACKEND_DAI_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("PRI_MI2S_TX", SND_SOC_NOPM,
13829 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013830 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
13833 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013834 MSM_BACKEND_DAI_SECONDARY_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
13837 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013838 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
13841 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013842 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("QUIN_MI2S_TX", SND_SOC_NOPM,
13845 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013846 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013848 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13849 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013850 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013852 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13853 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013854 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13855 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013856 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13857 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013858 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13859 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013860 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13861 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013862 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013864 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13865 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013866 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013868 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13869 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053013870 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13871 msm_routing_put_port_mixer),
13872 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13873 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13874 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013875 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013876};
13877
13878static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013879 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13880 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013881 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013883 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13884 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013885 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013887 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13888 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013889 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13890 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013891 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13892 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013893 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013895 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13896 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013897 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
13898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013899 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13900 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013901 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13902 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013903};
13904
13905static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013906 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13907 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013908 MSM_BACKEND_DAI_SEC_AUXPCM_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_0_TX", SND_SOC_NOPM,
13911 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013912 MSM_BACKEND_DAI_SLIMBUS_0_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_SEC_AUXPCM_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("PRI_MI2S_TX", SND_SOC_NOPM,
13919 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013920 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13921 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013922};
13923
13924static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013925 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13926 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013927 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013929 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13930 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013931 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013933 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13934 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013935 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13936 msm_routing_put_port_mixer),
13937};
13938
13939static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013940 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13941 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013942 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013944 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13945 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013946 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013948 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13949 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013950 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13951 msm_routing_put_port_mixer),
13952};
13953
Rohit Kumara5077932017-09-10 22:05:05 +053013954static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013955 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13956 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013957 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013959 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13960 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013961 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013963 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13964 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013965 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13966 msm_routing_put_port_mixer),
13967};
13968
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013969static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013970 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13971 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013972 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13973 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013974 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13975 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013976 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
13977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013978 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13979 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013980 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013982 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13983 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013984 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013986 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13987 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013988 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013990 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13991 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013992 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13993 msm_routing_put_port_mixer),
13994};
13995
13996static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013997 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
13998 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013999 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
14000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014001 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14002 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014003 MSM_BACKEND_DAI_MI2S_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("AFE_PCM_RX", SND_SOC_NOPM,
14006 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014007 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
14008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014009 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
14010 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014011 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
14012 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014013 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
14014 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014015 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
14016 msm_routing_put_port_mixer),
14017};
14018
14019static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014020 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14021 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014022 MSM_BACKEND_DAI_INT_FM_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("SLIM_0_TX", SND_SOC_NOPM,
14025 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014026 MSM_BACKEND_DAI_SLIMBUS_0_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("SLIM_1_TX", SND_SOC_NOPM,
14029 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014030 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014032 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014034 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014036 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014038 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014040 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014042 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014044 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14045 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014046 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014048 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14049 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014050 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014052 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14053 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014054 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014056 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14057 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014058 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014060 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14061 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014062 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014064 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14065 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014066 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14067 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014068 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14069 MSM_BACKEND_DAI_SLIMBUS_6_RX,
14070 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14071 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014072};
14073
14074static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014075 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14076 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014077 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14078 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014079 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14080 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014081 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14082 msm_routing_put_port_mixer),
14083};
14084
14085static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014086 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14087 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014088 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014090 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14091 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014092 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14093 msm_routing_put_port_mixer),
14094};
14095
14096
14097static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014098 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14099 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014100 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14101 msm_routing_put_port_mixer),
14102};
14103
14104static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014105 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14106 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014107 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14108 msm_routing_put_port_mixer),
14109};
14110
Karthikeyan Mani57550082018-05-03 18:43:58 -070014111static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14112 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14113 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14114 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14115 msm_routing_put_port_mixer),
14116};
14117
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014118static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014119 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14120 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014121 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14122 msm_routing_put_port_mixer),
14123};
14124
14125static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014126 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14127 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014128 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014130 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14131 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014132 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14133 msm_routing_put_port_mixer),
14134};
14135
14136static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014137 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14138 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014139 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014141 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14142 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014143 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014145 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14146 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014147 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014149 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14150 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014151 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014153 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14154 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014155 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014157 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14158 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014159 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014161 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14162 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014163 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014165 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14166 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014167 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014169 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14170 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014171 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014173 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14174 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014175 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14176 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014177};
14178
14179static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014180 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14181 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014182 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14183 msm_routing_put_port_mixer),
14184};
14185
14186static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014187 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14188 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014189 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014191 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14192 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014193 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14194 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014195 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14196 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014197 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14198 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014199 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14200 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014201 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014203 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14204 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014205 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014207 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14208 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014209 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014211 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14212 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014213 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014215 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14216 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014217 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014219 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14220 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014221 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14222 msm_routing_put_port_mixer),
14223};
14224
Rohit Kumara5077932017-09-10 22:05:05 +053014225static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014226 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14227 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014228 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014230 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14231 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014232 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014234 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14235 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014236 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14237 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014238 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14239 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014240 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014242 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14243 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014244 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014246 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14247 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014248 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014250 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14251 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014252 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14253 msm_routing_put_port_mixer),
14254};
14255
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014256static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014257 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14258 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014259 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14260 msm_routing_get_port_mixer,
14261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014262 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14263 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014264 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14265 msm_routing_get_port_mixer,
14266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014267 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14268 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014269 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14270 msm_routing_get_port_mixer,
14271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014272 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14273 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014274 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14275 msm_routing_get_port_mixer,
14276 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014277 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14278 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014279 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14280 msm_routing_get_port_mixer,
14281 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014282 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14283 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014284 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14285 msm_routing_get_port_mixer,
14286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014287 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14288 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014289 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14290 msm_routing_get_port_mixer,
14291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014292 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14293 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014294 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14295 msm_routing_get_port_mixer,
14296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014297 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14298 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014299 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14300 msm_routing_get_port_mixer,
14301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014302 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14303 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014304 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14305 msm_routing_get_port_mixer,
14306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014307 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14308 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014309 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14310 msm_routing_get_port_mixer,
14311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014312 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14313 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014314 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14315 msm_routing_get_port_mixer,
14316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014317 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14318 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014319 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14320 msm_routing_get_port_mixer,
14321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014322 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14323 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014324 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14325 msm_routing_get_port_mixer,
14326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014327 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14328 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014329 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14330 msm_routing_get_port_mixer,
14331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014332 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14333 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014334 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14335 msm_routing_get_port_mixer,
14336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014337 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14338 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014339 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14340 msm_routing_get_port_mixer,
14341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014342 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14343 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014344 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14345 msm_routing_get_port_mixer,
14346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014347 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14348 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014349 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14350 msm_routing_get_port_mixer,
14351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014352 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14353 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014354 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14355 msm_routing_get_port_mixer,
14356 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014357};
14358
14359static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014360 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14361 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014362 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14363 msm_routing_get_port_mixer,
14364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014365 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14366 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014367 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14368 msm_routing_get_port_mixer,
14369 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014370 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14371 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014372 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14373 msm_routing_get_port_mixer,
14374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014375 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14376 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014377 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14378 msm_routing_get_port_mixer,
14379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014380 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14381 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014382 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14383 msm_routing_get_port_mixer,
14384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014385 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14386 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014387 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14388 msm_routing_get_port_mixer,
14389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014390 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14391 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014392 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14393 msm_routing_get_port_mixer,
14394 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014395 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14396 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014397 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14398 msm_routing_get_port_mixer,
14399 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014400 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14401 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014402 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14403 msm_routing_get_port_mixer,
14404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014405 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14406 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014407 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14408 msm_routing_get_port_mixer,
14409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014410 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14411 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014412 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14413 msm_routing_get_port_mixer,
14414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014415 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14416 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014417 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14418 msm_routing_get_port_mixer,
14419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014420 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14421 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014422 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14423 msm_routing_get_port_mixer,
14424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014425 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14426 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014427 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14428 msm_routing_get_port_mixer,
14429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014430 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14431 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014432 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14433 msm_routing_get_port_mixer,
14434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014435 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14436 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014437 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14438 msm_routing_get_port_mixer,
14439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014440 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14441 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014442 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14443 msm_routing_get_port_mixer,
14444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014445 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14446 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014447 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14448 msm_routing_get_port_mixer,
14449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014450 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14451 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014452 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14453 msm_routing_get_port_mixer,
14454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014455 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14456 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014457 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14458 msm_routing_get_port_mixer,
14459 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014460};
14461
14462static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014463 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14464 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014465 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14466 msm_routing_get_port_mixer,
14467 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014468 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14469 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014470 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14471 msm_routing_get_port_mixer,
14472 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014473 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14474 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014475 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14476 msm_routing_get_port_mixer,
14477 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014478 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14479 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014480 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14481 msm_routing_get_port_mixer,
14482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014483 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14484 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014485 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14486 msm_routing_get_port_mixer,
14487 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014488 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14489 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014490 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14491 msm_routing_get_port_mixer,
14492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014493 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14494 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014495 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14496 msm_routing_get_port_mixer,
14497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014498 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14499 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014500 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14501 msm_routing_get_port_mixer,
14502 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014503 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14504 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014505 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14506 msm_routing_get_port_mixer,
14507 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014508 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14509 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014510 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14511 msm_routing_get_port_mixer,
14512 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014513 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14514 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014515 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14516 msm_routing_get_port_mixer,
14517 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014518 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14519 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014520 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14521 msm_routing_get_port_mixer,
14522 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014523 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14524 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014525 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14526 msm_routing_get_port_mixer,
14527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014528 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14529 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014530 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14531 msm_routing_get_port_mixer,
14532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014533 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14534 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014535 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14536 msm_routing_get_port_mixer,
14537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014538 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14539 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014540 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14541 msm_routing_get_port_mixer,
14542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014543 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14544 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014545 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14546 msm_routing_get_port_mixer,
14547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014548 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14549 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014550 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14551 msm_routing_get_port_mixer,
14552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014553 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14554 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014555 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14556 msm_routing_get_port_mixer,
14557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014558 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14559 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014560 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14561 msm_routing_get_port_mixer,
14562 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014563};
14564
14565static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014566 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14567 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014568 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14569 msm_routing_get_port_mixer,
14570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014571 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14572 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014573 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14574 msm_routing_get_port_mixer,
14575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014576 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14577 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014578 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14579 msm_routing_get_port_mixer,
14580 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014581 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14582 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014583 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14584 msm_routing_get_port_mixer,
14585 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014586 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14587 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014588 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14589 msm_routing_get_port_mixer,
14590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014591 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14592 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014593 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14594 msm_routing_get_port_mixer,
14595 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014596 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14597 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014598 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14599 msm_routing_get_port_mixer,
14600 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014601 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14602 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014603 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14604 msm_routing_get_port_mixer,
14605 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014606 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14607 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014608 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14609 msm_routing_get_port_mixer,
14610 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014611 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14612 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014613 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14614 msm_routing_get_port_mixer,
14615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014616 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14617 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014618 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14619 msm_routing_get_port_mixer,
14620 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014621 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14622 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014623 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14624 msm_routing_get_port_mixer,
14625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014626 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14627 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014628 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14629 msm_routing_get_port_mixer,
14630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014631 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14632 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014633 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14634 msm_routing_get_port_mixer,
14635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014636 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14637 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014638 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14639 msm_routing_get_port_mixer,
14640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014641 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14642 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014643 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14644 msm_routing_get_port_mixer,
14645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014646 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14647 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014648 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14649 msm_routing_get_port_mixer,
14650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014651 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14652 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014653 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14654 msm_routing_get_port_mixer,
14655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014656 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14657 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014658 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14659 msm_routing_get_port_mixer,
14660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014661 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14662 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014663 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14664 msm_routing_get_port_mixer,
14665 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014666};
14667
14668static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014669 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14670 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014671 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14672 msm_routing_get_port_mixer,
14673 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014674 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14675 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014676 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14677 msm_routing_get_port_mixer,
14678 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014679 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14680 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014681 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14682 msm_routing_get_port_mixer,
14683 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014684 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14685 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014686 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14687 msm_routing_get_port_mixer,
14688 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014689 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14690 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014691 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14692 msm_routing_get_port_mixer,
14693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014694 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14695 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014696 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14697 msm_routing_get_port_mixer,
14698 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014699 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14700 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014701 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14702 msm_routing_get_port_mixer,
14703 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014704 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14705 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014706 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14707 msm_routing_get_port_mixer,
14708 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014709 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14710 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014711 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14712 msm_routing_get_port_mixer,
14713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014714 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14715 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014716 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14717 msm_routing_get_port_mixer,
14718 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014719 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14720 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014721 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14722 msm_routing_get_port_mixer,
14723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014724 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14725 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014726 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14727 msm_routing_get_port_mixer,
14728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014729 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14730 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014731 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14732 msm_routing_get_port_mixer,
14733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014734 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14735 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014736 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14737 msm_routing_get_port_mixer,
14738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014739 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14740 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014741 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14742 msm_routing_get_port_mixer,
14743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014744 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14745 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014746 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14747 msm_routing_get_port_mixer,
14748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014749 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14750 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014751 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14752 msm_routing_get_port_mixer,
14753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014754 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14755 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014756 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14757 msm_routing_get_port_mixer,
14758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014759 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14760 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014761 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14762 msm_routing_get_port_mixer,
14763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014764 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14765 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014766 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14767 msm_routing_get_port_mixer,
14768 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014769};
14770
14771static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014772 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14773 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014774 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14775 msm_routing_get_port_mixer,
14776 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014777 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14778 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014779 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14780 msm_routing_get_port_mixer,
14781 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014782 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14783 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014784 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14785 msm_routing_get_port_mixer,
14786 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014787 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14788 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014789 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14790 msm_routing_get_port_mixer,
14791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014792 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14793 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014794 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14795 msm_routing_get_port_mixer,
14796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014797 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14798 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014799 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14800 msm_routing_get_port_mixer,
14801 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014802 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14803 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014804 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14805 msm_routing_get_port_mixer,
14806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014807 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14808 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014809 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14810 msm_routing_get_port_mixer,
14811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014812 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14813 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014814 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14815 msm_routing_get_port_mixer,
14816 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014817 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14818 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014819 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14820 msm_routing_get_port_mixer,
14821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014822 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14823 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014824 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14825 msm_routing_get_port_mixer,
14826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014827 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14828 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014829 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14830 msm_routing_get_port_mixer,
14831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014832 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14833 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014834 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14835 msm_routing_get_port_mixer,
14836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014837 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14838 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014839 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14840 msm_routing_get_port_mixer,
14841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014842 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14843 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014844 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14845 msm_routing_get_port_mixer,
14846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014847 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14848 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014849 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14850 msm_routing_get_port_mixer,
14851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014852 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14853 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014854 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14855 msm_routing_get_port_mixer,
14856 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014857 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14858 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014859 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14860 msm_routing_get_port_mixer,
14861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014862 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14863 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014864 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14865 msm_routing_get_port_mixer,
14866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014867 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14868 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014869 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14870 msm_routing_get_port_mixer,
14871 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014872};
14873
14874static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014875 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14876 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014877 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14878 msm_routing_get_port_mixer,
14879 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014880 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14881 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014882 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14883 msm_routing_get_port_mixer,
14884 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014885 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14886 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014887 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14888 msm_routing_get_port_mixer,
14889 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014890 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14891 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014892 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14893 msm_routing_get_port_mixer,
14894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014895 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14896 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014897 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14898 msm_routing_get_port_mixer,
14899 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014900 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14901 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014902 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14903 msm_routing_get_port_mixer,
14904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014905 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14906 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014907 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14908 msm_routing_get_port_mixer,
14909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014910 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14911 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014912 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14913 msm_routing_get_port_mixer,
14914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014915 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14916 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014917 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14918 msm_routing_get_port_mixer,
14919 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014920 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14921 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014922 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14923 msm_routing_get_port_mixer,
14924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014925 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14926 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014927 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14928 msm_routing_get_port_mixer,
14929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014930 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14931 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014932 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14933 msm_routing_get_port_mixer,
14934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014935 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14936 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014937 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14938 msm_routing_get_port_mixer,
14939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014940 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14941 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014942 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14943 msm_routing_get_port_mixer,
14944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014945 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14946 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014947 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14948 msm_routing_get_port_mixer,
14949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014950 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14951 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014952 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14953 msm_routing_get_port_mixer,
14954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014955 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14956 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014957 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14958 msm_routing_get_port_mixer,
14959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014960 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14961 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014962 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14963 msm_routing_get_port_mixer,
14964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014965 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14966 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014967 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14968 msm_routing_get_port_mixer,
14969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014970 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14971 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014972 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14973 msm_routing_get_port_mixer,
14974 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014975};
14976
14977static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014978 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14979 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014980 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14981 msm_routing_get_port_mixer,
14982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014983 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14984 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014985 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14986 msm_routing_get_port_mixer,
14987 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014988 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14989 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014990 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14991 msm_routing_get_port_mixer,
14992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014993 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14994 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014995 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14996 msm_routing_get_port_mixer,
14997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014998 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14999 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015000 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15001 msm_routing_get_port_mixer,
15002 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015003 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15004 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015005 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15006 msm_routing_get_port_mixer,
15007 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015008 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15009 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015010 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15011 msm_routing_get_port_mixer,
15012 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015013 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15014 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015015 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15016 msm_routing_get_port_mixer,
15017 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015018 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15019 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015020 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15021 msm_routing_get_port_mixer,
15022 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015023 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15024 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015025 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15026 msm_routing_get_port_mixer,
15027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015028 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15029 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015030 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15031 msm_routing_get_port_mixer,
15032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015033 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15034 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015035 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15036 msm_routing_get_port_mixer,
15037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015038 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15039 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015040 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15041 msm_routing_get_port_mixer,
15042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015043 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15044 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015045 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15046 msm_routing_get_port_mixer,
15047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015048 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15049 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015050 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15051 msm_routing_get_port_mixer,
15052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015053 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15054 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015055 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15056 msm_routing_get_port_mixer,
15057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015058 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15059 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015060 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15061 msm_routing_get_port_mixer,
15062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015063 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15064 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015065 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15066 msm_routing_get_port_mixer,
15067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015068 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15069 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015070 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15071 msm_routing_get_port_mixer,
15072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015073 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15074 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015075 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15076 msm_routing_get_port_mixer,
15077 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015078};
15079
Derek Chenfdcc0982018-10-02 15:14:03 -070015080static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15081 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15082 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15083 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15084 msm_routing_get_port_mixer,
15085 msm_routing_put_port_mixer),
15086};
15087
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015088static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015089 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15090 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015091 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15092 msm_routing_get_port_mixer,
15093 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015094 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15095 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015096 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15097 msm_routing_get_port_mixer,
15098 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015099 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15100 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015101 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15102 msm_routing_get_port_mixer,
15103 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015104 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15105 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015106 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15107 msm_routing_get_port_mixer,
15108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015109 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15110 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015111 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15112 msm_routing_get_port_mixer,
15113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015114 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15115 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015116 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15117 msm_routing_get_port_mixer,
15118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015119 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15120 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015121 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15122 msm_routing_get_port_mixer,
15123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015124 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15125 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015126 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15127 msm_routing_get_port_mixer,
15128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015129 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15130 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015131 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15132 msm_routing_get_port_mixer,
15133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015134 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15135 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015136 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15137 msm_routing_get_port_mixer,
15138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015139 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15140 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015141 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15142 msm_routing_get_port_mixer,
15143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015144 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15145 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015146 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15147 msm_routing_get_port_mixer,
15148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015149 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15150 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015151 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15152 msm_routing_get_port_mixer,
15153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015154 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15155 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015156 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15157 msm_routing_get_port_mixer,
15158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015159 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15160 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015161 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15162 msm_routing_get_port_mixer,
15163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015164 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15165 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015166 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15167 msm_routing_get_port_mixer,
15168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015169 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15170 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015171 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15172 msm_routing_get_port_mixer,
15173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015174 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15175 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015176 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15177 msm_routing_get_port_mixer,
15178 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015179 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15180 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015181 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15182 msm_routing_get_port_mixer,
15183 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015184 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15185 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015186 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15187 msm_routing_get_port_mixer,
15188 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015189};
15190
15191static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015192 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15193 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015194 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15195 msm_routing_get_port_mixer,
15196 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015197 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15198 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015199 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15200 msm_routing_get_port_mixer,
15201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015202 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15203 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015204 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15205 msm_routing_get_port_mixer,
15206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015207 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15208 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015209 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15210 msm_routing_get_port_mixer,
15211 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015212 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15213 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015214 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15215 msm_routing_get_port_mixer,
15216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015217 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15218 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015219 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15220 msm_routing_get_port_mixer,
15221 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015222 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15223 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015224 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15225 msm_routing_get_port_mixer,
15226 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015227 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15228 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015229 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15230 msm_routing_get_port_mixer,
15231 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015232 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15233 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015234 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15235 msm_routing_get_port_mixer,
15236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015237 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15238 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015239 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15240 msm_routing_get_port_mixer,
15241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015242 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15243 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015244 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15245 msm_routing_get_port_mixer,
15246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015247 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15248 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015249 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15250 msm_routing_get_port_mixer,
15251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015252 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15253 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015254 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15255 msm_routing_get_port_mixer,
15256 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015257 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15258 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015259 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15260 msm_routing_get_port_mixer,
15261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015262 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15263 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015264 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15265 msm_routing_get_port_mixer,
15266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015267 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15268 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015269 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15270 msm_routing_get_port_mixer,
15271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015272 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15273 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015274 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15275 msm_routing_get_port_mixer,
15276 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015277 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15278 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015279 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15280 msm_routing_get_port_mixer,
15281 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015282 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15283 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015284 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15285 msm_routing_get_port_mixer,
15286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015287 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15288 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015289 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15290 msm_routing_get_port_mixer,
15291 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015292};
15293
15294static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015295 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15296 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015297 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15298 msm_routing_get_port_mixer,
15299 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015300 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15301 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015302 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15303 msm_routing_get_port_mixer,
15304 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015305 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15306 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015307 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15308 msm_routing_get_port_mixer,
15309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015310 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15311 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015312 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15313 msm_routing_get_port_mixer,
15314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015315 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15316 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015317 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15318 msm_routing_get_port_mixer,
15319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015320 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15321 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015322 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15323 msm_routing_get_port_mixer,
15324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015325 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15326 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015327 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15328 msm_routing_get_port_mixer,
15329 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015330 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15331 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015332 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15333 msm_routing_get_port_mixer,
15334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015335 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15336 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015337 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15338 msm_routing_get_port_mixer,
15339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015340 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15341 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015342 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15343 msm_routing_get_port_mixer,
15344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015345 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15346 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015347 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15348 msm_routing_get_port_mixer,
15349 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015350 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15351 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015352 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15353 msm_routing_get_port_mixer,
15354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015355 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15356 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015357 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15358 msm_routing_get_port_mixer,
15359 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015360 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15361 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015362 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15363 msm_routing_get_port_mixer,
15364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015365 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15366 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015367 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15368 msm_routing_get_port_mixer,
15369 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015370 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15371 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015372 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15373 msm_routing_get_port_mixer,
15374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015375 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15376 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015377 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15378 msm_routing_get_port_mixer,
15379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015380 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15381 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015382 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15383 msm_routing_get_port_mixer,
15384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015385 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15386 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015387 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15388 msm_routing_get_port_mixer,
15389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015390 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15391 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015392 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15393 msm_routing_get_port_mixer,
15394 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015395};
15396
15397static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015398 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15399 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015400 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15401 msm_routing_get_port_mixer,
15402 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015403 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15404 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015405 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15406 msm_routing_get_port_mixer,
15407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015408 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15409 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015410 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15411 msm_routing_get_port_mixer,
15412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015413 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15414 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015415 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15416 msm_routing_get_port_mixer,
15417 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015418 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15419 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015420 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15421 msm_routing_get_port_mixer,
15422 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015423 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15424 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015425 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15426 msm_routing_get_port_mixer,
15427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015428 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15429 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015430 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15431 msm_routing_get_port_mixer,
15432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015433 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15434 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015435 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15436 msm_routing_get_port_mixer,
15437 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015438 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15439 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015440 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15441 msm_routing_get_port_mixer,
15442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015443 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15444 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015445 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15446 msm_routing_get_port_mixer,
15447 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015448 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15449 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015450 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15451 msm_routing_get_port_mixer,
15452 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015453 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15454 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015455 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15456 msm_routing_get_port_mixer,
15457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015458 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15459 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015460 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15461 msm_routing_get_port_mixer,
15462 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015463 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15464 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015465 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15466 msm_routing_get_port_mixer,
15467 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015468 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15469 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015470 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15471 msm_routing_get_port_mixer,
15472 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015473 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15474 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015475 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15476 msm_routing_get_port_mixer,
15477 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015478 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15479 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015480 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15481 msm_routing_get_port_mixer,
15482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015483 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15484 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015485 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15486 msm_routing_get_port_mixer,
15487 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015488 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15489 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015490 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15491 msm_routing_get_port_mixer,
15492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015493 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15494 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015495 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15496 msm_routing_get_port_mixer,
15497 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015498};
15499
15500static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015501 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15502 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015503 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15504 msm_routing_get_port_mixer,
15505 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015506 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15507 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015508 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15509 msm_routing_get_port_mixer,
15510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015511 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15512 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015513 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15514 msm_routing_get_port_mixer,
15515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015516 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15517 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015518 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15519 msm_routing_get_port_mixer,
15520 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015521 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15522 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015523 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15524 msm_routing_get_port_mixer,
15525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015526 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15527 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015528 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15529 msm_routing_get_port_mixer,
15530 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015531 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15532 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015533 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15534 msm_routing_get_port_mixer,
15535 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015536 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15537 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015538 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15539 msm_routing_get_port_mixer,
15540 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015541 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15542 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015543 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15544 msm_routing_get_port_mixer,
15545 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015546 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15547 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015548 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15549 msm_routing_get_port_mixer,
15550 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015551 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15552 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015553 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15554 msm_routing_get_port_mixer,
15555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015556 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15557 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015558 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15559 msm_routing_get_port_mixer,
15560 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015561 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15562 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015563 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15564 msm_routing_get_port_mixer,
15565 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015566 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15567 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015568 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15569 msm_routing_get_port_mixer,
15570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015571 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15572 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015573 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15574 msm_routing_get_port_mixer,
15575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015576 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15577 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015578 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15579 msm_routing_get_port_mixer,
15580 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015581 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15582 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015583 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15584 msm_routing_get_port_mixer,
15585 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015586 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15587 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015588 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15589 msm_routing_get_port_mixer,
15590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015591 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15592 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015593 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15594 msm_routing_get_port_mixer,
15595 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015596 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15597 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015598 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15599 msm_routing_get_port_mixer,
15600 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015601};
15602
15603static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015604 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15605 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015606 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15607 msm_routing_get_port_mixer,
15608 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015609 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15610 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015611 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15612 msm_routing_get_port_mixer,
15613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015614 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15615 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015616 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15617 msm_routing_get_port_mixer,
15618 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015619 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15620 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015621 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15622 msm_routing_get_port_mixer,
15623 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015624 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15625 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015626 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15627 msm_routing_get_port_mixer,
15628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015629 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15630 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015631 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15632 msm_routing_get_port_mixer,
15633 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015634 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15635 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015636 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15637 msm_routing_get_port_mixer,
15638 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015639 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15640 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015641 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15642 msm_routing_get_port_mixer,
15643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015644 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15645 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015646 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15647 msm_routing_get_port_mixer,
15648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015649 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15650 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015651 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15652 msm_routing_get_port_mixer,
15653 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015654 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15655 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015656 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15657 msm_routing_get_port_mixer,
15658 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015659 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15660 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015661 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15662 msm_routing_get_port_mixer,
15663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015664 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15665 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015666 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15667 msm_routing_get_port_mixer,
15668 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015669 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15670 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015671 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15672 msm_routing_get_port_mixer,
15673 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015674 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15675 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015676 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15677 msm_routing_get_port_mixer,
15678 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015679 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15680 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015681 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15682 msm_routing_get_port_mixer,
15683 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015684 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15685 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015686 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15687 msm_routing_get_port_mixer,
15688 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015689 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15690 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015691 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15692 msm_routing_get_port_mixer,
15693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015694 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15695 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015696 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15697 msm_routing_get_port_mixer,
15698 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015699 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15700 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015701 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15702 msm_routing_get_port_mixer,
15703 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015704};
15705
15706static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015707 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15708 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015709 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15710 msm_routing_get_port_mixer,
15711 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015712 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15713 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015714 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15715 msm_routing_get_port_mixer,
15716 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015717 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15718 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015719 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15720 msm_routing_get_port_mixer,
15721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015722 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15723 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015724 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15725 msm_routing_get_port_mixer,
15726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015727 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15728 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015729 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15730 msm_routing_get_port_mixer,
15731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015732 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15733 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015734 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15735 msm_routing_get_port_mixer,
15736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015737 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15738 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015739 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15740 msm_routing_get_port_mixer,
15741 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015742 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15743 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015744 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15745 msm_routing_get_port_mixer,
15746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015747 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15748 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015749 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15750 msm_routing_get_port_mixer,
15751 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015752 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15753 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015754 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15755 msm_routing_get_port_mixer,
15756 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015757 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15758 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015759 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15760 msm_routing_get_port_mixer,
15761 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015762 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15763 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015764 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15765 msm_routing_get_port_mixer,
15766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015767 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15768 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015769 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15770 msm_routing_get_port_mixer,
15771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015772 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15773 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015774 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15775 msm_routing_get_port_mixer,
15776 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015777 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15778 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015779 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15780 msm_routing_get_port_mixer,
15781 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015782 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15783 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015784 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15785 msm_routing_get_port_mixer,
15786 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015787 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15788 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015789 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15790 msm_routing_get_port_mixer,
15791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015792 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15793 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015794 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15795 msm_routing_get_port_mixer,
15796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015797 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15798 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015799 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15800 msm_routing_get_port_mixer,
15801 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015802 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15803 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015804 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15805 msm_routing_get_port_mixer,
15806 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015807};
15808
15809static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015810 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15811 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015812 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15813 msm_routing_get_port_mixer,
15814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015815 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15816 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015817 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15818 msm_routing_get_port_mixer,
15819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015820 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15821 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015822 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15823 msm_routing_get_port_mixer,
15824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015825 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15826 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015827 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15828 msm_routing_get_port_mixer,
15829 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015830 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15831 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015832 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15833 msm_routing_get_port_mixer,
15834 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015835 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15836 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015837 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15838 msm_routing_get_port_mixer,
15839 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015840 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15841 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015842 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15843 msm_routing_get_port_mixer,
15844 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015845 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15846 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015847 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15848 msm_routing_get_port_mixer,
15849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015850 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15851 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015852 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15853 msm_routing_get_port_mixer,
15854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015855 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15856 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015857 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15858 msm_routing_get_port_mixer,
15859 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015860 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15861 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015862 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15863 msm_routing_get_port_mixer,
15864 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015865 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15866 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015867 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15868 msm_routing_get_port_mixer,
15869 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015870 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15871 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015872 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15873 msm_routing_get_port_mixer,
15874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015875 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15876 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015877 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15878 msm_routing_get_port_mixer,
15879 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015880 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15881 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015882 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15883 msm_routing_get_port_mixer,
15884 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015885 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15886 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015887 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15888 msm_routing_get_port_mixer,
15889 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015890 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15891 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015892 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15893 msm_routing_get_port_mixer,
15894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015895 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15896 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015897 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15898 msm_routing_get_port_mixer,
15899 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015900 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15901 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015902 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15903 msm_routing_get_port_mixer,
15904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015905 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15906 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015907 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15908 msm_routing_get_port_mixer,
15909 msm_routing_put_port_mixer),
15910};
15911
15912static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015913 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15914 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015915 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15916 msm_routing_get_port_mixer,
15917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015918 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15919 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015920 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15921 msm_routing_get_port_mixer,
15922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015923 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15924 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015925 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15926 msm_routing_get_port_mixer,
15927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015928 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15929 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015930 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15931 msm_routing_get_port_mixer,
15932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015933 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15934 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015935 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15936 msm_routing_get_port_mixer,
15937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015938 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15939 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015940 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15941 msm_routing_get_port_mixer,
15942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015943 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15944 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015945 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15946 msm_routing_get_port_mixer,
15947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015948 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15949 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015950 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15951 msm_routing_get_port_mixer,
15952 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015953 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15954 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015955 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15956 msm_routing_get_port_mixer,
15957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015958 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15959 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015960 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15961 msm_routing_get_port_mixer,
15962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015963 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15964 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015965 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15966 msm_routing_get_port_mixer,
15967 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015968 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15969 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015970 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15971 msm_routing_get_port_mixer,
15972 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015973 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15974 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015975 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15976 msm_routing_get_port_mixer,
15977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015978 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15979 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015980 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15981 msm_routing_get_port_mixer,
15982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015983 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15984 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015985 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15986 msm_routing_get_port_mixer,
15987 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015988 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15989 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015990 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15991 msm_routing_get_port_mixer,
15992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015993 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15994 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015995 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15996 msm_routing_get_port_mixer,
15997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015998 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15999 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016000 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16001 msm_routing_get_port_mixer,
16002 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016003 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16004 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016005 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16006 msm_routing_get_port_mixer,
16007 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016008 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16009 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016010 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16011 msm_routing_get_port_mixer,
16012 msm_routing_put_port_mixer),
16013};
16014
16015static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016016 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16017 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016018 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16019 msm_routing_get_port_mixer,
16020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016021 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16022 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016023 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16024 msm_routing_get_port_mixer,
16025 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016026 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16027 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016028 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16029 msm_routing_get_port_mixer,
16030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016031 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16032 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016033 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16034 msm_routing_get_port_mixer,
16035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016036 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16037 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016038 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16039 msm_routing_get_port_mixer,
16040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016041 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16042 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016043 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16044 msm_routing_get_port_mixer,
16045 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016046 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16047 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016048 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16049 msm_routing_get_port_mixer,
16050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016051 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16052 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016053 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16054 msm_routing_get_port_mixer,
16055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016056 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16057 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016058 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16059 msm_routing_get_port_mixer,
16060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016061 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16062 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016063 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16064 msm_routing_get_port_mixer,
16065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016066 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16067 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016068 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16069 msm_routing_get_port_mixer,
16070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016071 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16072 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016073 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16074 msm_routing_get_port_mixer,
16075 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016076 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16077 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016078 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16079 msm_routing_get_port_mixer,
16080 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016081 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16082 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016083 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16084 msm_routing_get_port_mixer,
16085 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016086 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16087 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016088 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16089 msm_routing_get_port_mixer,
16090 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016091 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16092 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016093 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16094 msm_routing_get_port_mixer,
16095 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016096 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16097 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016098 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16099 msm_routing_get_port_mixer,
16100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016101 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16102 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016103 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16104 msm_routing_get_port_mixer,
16105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016106 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16107 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016108 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16109 msm_routing_get_port_mixer,
16110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016111 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16112 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016113 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16114 msm_routing_get_port_mixer,
16115 msm_routing_put_port_mixer),
16116};
16117
16118static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016119 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16120 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016121 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16122 msm_routing_get_port_mixer,
16123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016124 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16125 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016126 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16127 msm_routing_get_port_mixer,
16128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016129 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16130 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016131 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16132 msm_routing_get_port_mixer,
16133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016134 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16135 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016136 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16137 msm_routing_get_port_mixer,
16138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016139 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16140 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016141 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16142 msm_routing_get_port_mixer,
16143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016144 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16145 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016146 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16147 msm_routing_get_port_mixer,
16148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016149 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16150 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016151 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16152 msm_routing_get_port_mixer,
16153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016154 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16155 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016156 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16157 msm_routing_get_port_mixer,
16158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016159 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16160 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016161 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16162 msm_routing_get_port_mixer,
16163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016164 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16165 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016166 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16167 msm_routing_get_port_mixer,
16168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016169 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16170 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016171 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16172 msm_routing_get_port_mixer,
16173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016174 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16175 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016176 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16177 msm_routing_get_port_mixer,
16178 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016179 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16180 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016181 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16182 msm_routing_get_port_mixer,
16183 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016184 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16185 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016186 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16187 msm_routing_get_port_mixer,
16188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016189 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16190 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016191 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16192 msm_routing_get_port_mixer,
16193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016194 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16195 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016196 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16197 msm_routing_get_port_mixer,
16198 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016199 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16200 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016201 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16202 msm_routing_get_port_mixer,
16203 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016204 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16205 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016206 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16207 msm_routing_get_port_mixer,
16208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016209 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16210 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016211 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16212 msm_routing_get_port_mixer,
16213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016214 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16215 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016216 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16217 msm_routing_get_port_mixer,
16218 msm_routing_put_port_mixer),
16219};
16220
16221static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016222 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16223 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016224 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16225 msm_routing_get_port_mixer,
16226 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016227 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16228 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016229 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16230 msm_routing_get_port_mixer,
16231 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016232 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16233 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016234 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16235 msm_routing_get_port_mixer,
16236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016237 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16238 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016239 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16240 msm_routing_get_port_mixer,
16241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016242 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16243 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016244 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16245 msm_routing_get_port_mixer,
16246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016247 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16248 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016249 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16250 msm_routing_get_port_mixer,
16251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016252 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16253 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016254 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16255 msm_routing_get_port_mixer,
16256 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016257 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16258 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016259 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16260 msm_routing_get_port_mixer,
16261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016262 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16263 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016264 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16265 msm_routing_get_port_mixer,
16266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016267 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16268 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016269 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16270 msm_routing_get_port_mixer,
16271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016272 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16273 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016274 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16275 msm_routing_get_port_mixer,
16276 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016277 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16278 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016279 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16280 msm_routing_get_port_mixer,
16281 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016282 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16283 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016284 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16285 msm_routing_get_port_mixer,
16286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016287 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16288 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016289 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16290 msm_routing_get_port_mixer,
16291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016292 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16293 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016294 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16295 msm_routing_get_port_mixer,
16296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016297 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16298 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016299 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16300 msm_routing_get_port_mixer,
16301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016302 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16303 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016304 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16305 msm_routing_get_port_mixer,
16306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016307 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16308 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016309 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16310 msm_routing_get_port_mixer,
16311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016312 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16313 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016314 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16315 msm_routing_get_port_mixer,
16316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016317 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16318 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016319 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16320 msm_routing_get_port_mixer,
16321 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016322};
16323
16324static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016325 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16326 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016327 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016329 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16330 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016331 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016333 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16334 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016335 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016337 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16338 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016339 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016341 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16342 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016343 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016345 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16346 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016347 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016349 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16350 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016351 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16352 msm_routing_put_port_mixer),
16353};
16354
16355static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016356 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16357 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016358 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16359 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016360 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16361 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016362 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016364 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16365 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016366 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016368 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16369 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016370 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016372 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16373 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016374 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16375 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016376 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16377 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016378 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016380 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16381 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016382 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016384 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16385 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016386 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016388 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16389 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016390 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16391 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016392};
16393
16394static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016395 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16396 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016397 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16398 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016399 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16400 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016401 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16402 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016403 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16404 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016405 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16406 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016407 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16408 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016409 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16410 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016411 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16412 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016413 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16414 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016415 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16416 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016417 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16418 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016419 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16420 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016421 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16422 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016423 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16424 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016425 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16426 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016427 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16428 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16429 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16430 msm_routing_put_listen_mixer),
16431 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16432 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16433 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16434 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016435 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16436 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16437 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16438 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016439 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16440 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16441 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16442 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016443};
16444
16445static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016446 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16447 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016448 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16449 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016450 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16451 SND_SOC_NOPM,
16452 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016453 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16454 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016455 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16456 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016457 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16458 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016459 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16460 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016461 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16462 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016463 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16464 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016465 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16466 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016467 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16468 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016469 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16470 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016471 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16472 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016473 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16474 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016475 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16476 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016477 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16478 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016479 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16480 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16481 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16482 msm_routing_put_listen_mixer),
16483 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16484 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16485 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16486 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016487 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16488 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16489 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16490 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016491 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16492 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16493 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16494 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016495};
16496
16497static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016498 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16499 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016500 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16501 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016502 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16503 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016504 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16505 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016506 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16507 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016508 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16509 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016510 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16511 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016512 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16513 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016514 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16515 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016516 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16517 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016518 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16519 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016520 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16521 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016522 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16523 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016524 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16525 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016526 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16527 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016528 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16529 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016530 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16531 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16532 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16533 msm_routing_put_listen_mixer),
16534 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16535 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16536 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16537 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016538 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16539 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16540 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16541 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016542 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16543 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16544 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16545 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016546};
16547
16548static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016549 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16550 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016551 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16552 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016553 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16554 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016555 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16556 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016557 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16558 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016559 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16560 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016561 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16562 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016563 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16564 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016565 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16566 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016567 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16568 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016569 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16570 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016571 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16572 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016573 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16574 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016575 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16576 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016577 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16578 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016579 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16580 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016581 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16582 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16583 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16584 msm_routing_put_listen_mixer),
16585 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16586 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16587 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16588 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016589 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16590 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16591 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16592 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016593 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16594 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16595 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16596 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016597};
16598
16599static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016600 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16601 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016602 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16603 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016604 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16605 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016606 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16607 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016608 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16609 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016610 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16611 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016612 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16613 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016614 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16615 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016616 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16617 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016618 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16619 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016620 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16621 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016622 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16623 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016624 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16625 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016626 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16627 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016628 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16629 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016630 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16631 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016632 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16633 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16634 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16635 msm_routing_put_listen_mixer),
16636 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16637 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16638 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16639 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016640 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16641 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16642 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16643 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016644 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16645 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16646 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16647 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016648};
16649
16650static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016651 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16652 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016653 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16654 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016655 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16656 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016657 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16658 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016659 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16660 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016661 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16662 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016663 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16664 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016665 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16666 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016667 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16668 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016669 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16670 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016671 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16672 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016673 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16674 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016675 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16676 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016677 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16678 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016679 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16680 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016681 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16682 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016683 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16684 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16685 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16686 msm_routing_put_listen_mixer),
16687 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16688 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16689 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16690 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016691 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16692 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16693 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16694 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016695 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16696 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16697 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16698 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016699};
16700
16701static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016702 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16703 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016704 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16705 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016706 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16707 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016708 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16709 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016710 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16711 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016712 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16713 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016714 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16715 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016716 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16717 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016718 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16719 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016720 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16721 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016722 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16723 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016724 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16725 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016726 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16727 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016728 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16729 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016730 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16731 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016732 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16733 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016734 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16735 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16736 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16737 msm_routing_put_listen_mixer),
16738 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16739 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16740 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16741 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016742 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16743 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16744 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16745 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016746 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16747 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16748 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16749 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016750};
16751
16752static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016753 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16754 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016755 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16756 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016757 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16758 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016759 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16760 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016761 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16762 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016763 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16764 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016765 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16766 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016767 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16768 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016769 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16770 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016771 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16772 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016773 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16774 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016775 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16776 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016777 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16778 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016779 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16780 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016781 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16782 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016783 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16784 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016785 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16786 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16787 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16788 msm_routing_put_listen_mixer),
16789 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16790 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16791 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16792 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016793 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16794 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16795 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16796 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016797 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16798 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16799 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16800 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016801};
16802
16803static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16804 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16805 0, 1, 0, msm_routing_get_switch_mixer,
16806 msm_routing_put_switch_mixer);
16807
16808static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16809 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16810 0, 1, 0, msm_routing_get_switch_mixer,
16811 msm_routing_put_switch_mixer);
16812
16813static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16814 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16815 0, 1, 0, msm_routing_get_switch_mixer,
16816 msm_routing_put_switch_mixer);
16817
16818static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16819 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16820 0, 1, 0, msm_routing_get_switch_mixer,
16821 msm_routing_put_switch_mixer);
16822
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016823static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
16824 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16825 0, 1, 0, msm_routing_get_switch_mixer,
16826 msm_routing_put_switch_mixer);
16827
16828static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016829 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16830 0, 1, 0, msm_routing_get_switch_mixer,
16831 msm_routing_put_switch_mixer);
16832
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016833static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16834 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16835 0, 1, 0, msm_routing_get_switch_mixer,
16836 msm_routing_put_switch_mixer);
16837
16838static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16839 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16840 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16841 msm_routing_put_fm_pcmrx_switch_mixer);
16842
16843static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16844 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16845 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16846 msm_routing_put_int0_mi2s_switch_mixer);
16847
16848static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16849 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16850 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16851 msm_routing_put_int4_mi2s_switch_mixer);
16852
16853static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16854 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16855 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16856 msm_routing_put_pri_mi2s_switch_mixer);
16857
16858static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
16859 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16860 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
16861 msm_routing_put_sec_mi2s_switch_mixer);
16862
16863static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
16864 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16865 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
16866 msm_routing_put_tert_mi2s_switch_mixer);
16867
16868static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
16869 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16870 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
16871 msm_routing_put_quat_mi2s_switch_mixer);
16872
Rohit Kumara5077932017-09-10 22:05:05 +053016873static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
16874 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16875 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
16876 msm_routing_put_quin_mi2s_switch_mixer);
16877
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016878static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
16879 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16880 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16881 msm_routing_put_hfp_switch_mixer);
16882
16883static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
16884 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16885 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16886 msm_routing_put_hfp_switch_mixer);
16887
16888static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
16889 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16890 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16891 msm_routing_put_hfp_switch_mixer);
16892
16893static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
16894 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16895 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16896 msm_routing_put_hfp_switch_mixer);
16897
16898static const struct snd_kcontrol_new usb_switch_mixer_controls =
16899 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16900 0, 1, 0, msm_routing_get_usb_switch_mixer,
16901 msm_routing_put_usb_switch_mixer);
16902
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016903static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
16904 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16905 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
16906 msm_routing_a2dp_switch_mixer_put);
16907
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016908static const struct soc_enum lsm_port_enum =
16909 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
16910
16911static const char * const lsm_func_text[] = {
16912 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
16913};
16914static const struct soc_enum lsm_func_enum =
16915 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
16916
16917static const struct snd_kcontrol_new lsm_controls[] = {
16918 /* kcontrol of lsm_function */
16919 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16920 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16921 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16922 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16923 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16924 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16925 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16926 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16927 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16928 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16929 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16930 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16931 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16932 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16933 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16934 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16935 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16936 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016937 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16938 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016939 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16940 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016941 /* kcontrol of lsm_port */
16942 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
16943 msm_routing_lsm_port_get,
16944 msm_routing_lsm_port_put),
16945 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
16946 msm_routing_lsm_port_get,
16947 msm_routing_lsm_port_put),
16948 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
16949 msm_routing_lsm_port_get,
16950 msm_routing_lsm_port_put),
16951 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
16952 msm_routing_lsm_port_get,
16953 msm_routing_lsm_port_put),
16954 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
16955 msm_routing_lsm_port_get,
16956 msm_routing_lsm_port_put),
16957 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
16958 msm_routing_lsm_port_get,
16959 msm_routing_lsm_port_put),
16960 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
16961 msm_routing_lsm_port_get,
16962 msm_routing_lsm_port_put),
16963 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
16964 msm_routing_lsm_port_get,
16965 msm_routing_lsm_port_put),
16966};
16967
16968static const char * const aanc_slim_0_rx_text[] = {
16969 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
16970 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
16971};
16972
16973static const struct soc_enum aanc_slim_0_rx_enum =
16974 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
16975 aanc_slim_0_rx_text);
16976
16977static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
16978 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
16979 msm_routing_slim_0_rx_aanc_mux_get,
16980 msm_routing_slim_0_rx_aanc_mux_put)
16981};
16982
Sudheer Papothic07b37a2018-05-04 05:56:47 +053016983static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
16984 struct snd_ctl_elem_value *ucontrol)
16985{
16986 ucontrol->value.integer.value[0] = aanc_level;
16987
16988 return 0;
16989}
16990
16991static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
16992 struct snd_ctl_elem_value *ucontrol)
16993{
16994 int ret = 0;
16995
16996 mutex_lock(&routing_lock);
16997 aanc_level = ucontrol->value.integer.value[0];
16998 pr_debug("%s: value: %ld\n",
16999 __func__, ucontrol->value.integer.value[0]);
17000 ret = afe_set_aanc_noise_level(aanc_level);
17001 mutex_unlock(&routing_lock);
17002
17003 return ret;
17004}
17005
17006static const struct snd_kcontrol_new aanc_noise_level[] = {
17007 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
17008 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
17009};
17010
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017011static int msm_routing_get_stereo_to_custom_stereo_control(
17012 struct snd_kcontrol *kcontrol,
17013 struct snd_ctl_elem_value *ucontrol)
17014{
17015 ucontrol->value.integer.value[0] = is_custom_stereo_on;
17016 return 0;
17017}
17018
17019static int msm_routing_put_stereo_to_custom_stereo_control(
17020 struct snd_kcontrol *kcontrol,
17021 struct snd_ctl_elem_value *ucontrol)
17022{
17023 int flag = 0, i = 0, rc = 0, idx = 0;
17024 int be_index = 0, port_id, topo_id;
17025 unsigned int session_id = 0;
17026 uint16_t op_FL_ip_FL_weight = 0;
17027 uint16_t op_FL_ip_FR_weight = 0;
17028 uint16_t op_FR_ip_FL_weight = 0;
17029 uint16_t op_FR_ip_FR_weight = 0;
17030
17031 flag = ucontrol->value.integer.value[0];
17032 pr_debug("%s E flag %d\n", __func__, flag);
17033
17034 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
17035 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
17036 __func__, is_custom_stereo_on, flag);
17037 return 0;
17038 }
17039 is_custom_stereo_on = flag ? true : false;
17040 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
17041 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
17042 port_id = msm_bedais[be_index].port_id;
17043 if (!msm_bedais[be_index].active)
17044 continue;
17045 if ((port_id != SLIMBUS_0_RX) &&
17046 (port_id != RT_PROXY_PORT_001_RX) &&
17047 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
17048 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
17049 continue;
17050
17051 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
17052 MSM_FRONTEND_DAI_MM_SIZE) {
17053 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
17054 LEGACY_PCM_MODE)
17055 goto skip_send_custom_stereo;
17056 session_id =
17057 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
17058 if (is_custom_stereo_on) {
17059 op_FL_ip_FL_weight =
17060 Q14_GAIN_ZERO_POINT_FIVE;
17061 op_FL_ip_FR_weight =
17062 Q14_GAIN_ZERO_POINT_FIVE;
17063 op_FR_ip_FL_weight =
17064 Q14_GAIN_ZERO_POINT_FIVE;
17065 op_FR_ip_FR_weight =
17066 Q14_GAIN_ZERO_POINT_FIVE;
17067 } else {
17068 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
17069 op_FL_ip_FR_weight = 0;
17070 op_FR_ip_FL_weight = 0;
17071 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
17072 }
17073 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17074 unsigned long copp =
17075 session_copp_map[i]
17076 [SESSION_TYPE_RX][be_index];
17077 if (!test_bit(idx, &copp))
17078 goto skip_send_custom_stereo;
17079 topo_id = adm_get_topology_for_port_copp_idx(
17080 msm_bedais[be_index].port_id, idx);
17081 if (topo_id < 0)
17082 pr_debug("%s:Err:custom stereo topo %d",
17083 __func__, topo_id);
17084 pr_debug("idx %d\n", idx);
17085 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17086 rc = msm_ds2_dap_set_custom_stereo_onoff
17087 (msm_bedais[be_index].port_id,
17088 idx, is_custom_stereo_on);
17089 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17090 rc = dolby_dap_set_custom_stereo_onoff(
17091 msm_bedais[be_index].port_id,
17092 idx, is_custom_stereo_on);
17093 else
17094 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17095 (msm_bedais[be_index].port_id,
17096 idx, session_id,
17097 op_FL_ip_FL_weight,
17098 op_FL_ip_FR_weight,
17099 op_FR_ip_FL_weight,
17100 op_FR_ip_FR_weight);
17101 if (rc < 0)
17102skip_send_custom_stereo:
17103 pr_err("%s: err setting custom stereo\n",
17104 __func__);
17105 }
17106
17107 }
17108 }
17109 return 0;
17110}
17111
17112static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17113 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17114 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17115 msm_routing_put_stereo_to_custom_stereo_control),
17116};
17117
17118static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17119 struct snd_ctl_elem_value *ucontrol)
17120{
17121 return 0;
17122}
17123
17124static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17125 struct snd_ctl_elem_value *ucontrol)
17126{
17127 int i = 0, j;
17128 int num_app_types = ucontrol->value.integer.value[i++];
17129
17130 pr_debug("%s\n", __func__);
17131
17132 memset(app_type_cfg, 0, MAX_APP_TYPES*
17133 sizeof(struct msm_pcm_routing_app_type_data));
17134 if (num_app_types > MAX_APP_TYPES) {
17135 pr_err("%s: number of app types exceed the max supported\n",
17136 __func__);
17137 return -EINVAL;
17138 }
17139 for (j = 0; j < num_app_types; j++) {
17140 app_type_cfg[j].app_type =
17141 ucontrol->value.integer.value[i++];
17142 app_type_cfg[j].sample_rate =
17143 ucontrol->value.integer.value[i++];
17144 app_type_cfg[j].bit_width =
17145 ucontrol->value.integer.value[i++];
17146 }
17147
17148 return 0;
17149}
17150
17151static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17152 struct snd_ctl_elem_value *ucontrol)
17153{
17154 int j, fe_id, be_id, port_type;
17155 int ret = 0;
17156 unsigned long copp;
17157 struct msm_pcm_routing_bdai_data *bedai;
17158 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17159 SESSION_TYPE_RX;
17160 int app_type = ucontrol->value.integer.value[1];
17161 int gain = (ucontrol->value.integer.value[2] +
17162 ucontrol->value.integer.value[3])/2;
17163
17164 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17165 MSM_AFE_PORT_TYPE_TX;
17166
17167 mutex_lock(&routing_lock);
17168 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17169 if (is_be_dai_extproc(be_id))
17170 continue;
17171
17172 bedai = &msm_bedais[be_id];
17173 if (afe_get_port_type(bedai->port_id) != port_type)
17174 continue;
17175
17176 if (!bedai->active)
17177 continue;
17178
17179 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17180 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17181 continue;
17182
17183 if (app_type !=
17184 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17185 continue;
17186
17187 copp = session_copp_map[fe_id][dir][be_id];
17188 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17189 if (!test_bit(j, &copp))
17190 continue;
17191 ret |= adm_set_volume(bedai->port_id, j, gain);
17192 }
17193 }
17194 }
17195 mutex_unlock(&routing_lock);
17196 return ret ? -EINVAL : 0;
17197}
17198
17199static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17200 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17201 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17202 msm_routing_put_app_type_cfg_control),
17203 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17204 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17205};
17206
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017207static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17208 struct snd_ctl_elem_value *ucontrol)
17209{
17210 int copp_idx, fe_id, be_id, port_type;
17211 int ret = 0;
17212 unsigned long copp;
17213 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017214 u8 *packed_params = NULL;
17215 struct param_hdr_v3 param_hdr;
17216 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17217 sizeof(uint32_t));
17218
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017219 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17220 SESSION_TYPE_RX;
17221 int app_type = ucontrol->value.integer.value[1];
17222 int module_id = ucontrol->value.integer.value[2];
17223 int instance_id = ucontrol->value.integer.value[3];
17224 int param_id = ucontrol->value.integer.value[4];
17225 int param_value = ucontrol->value.integer.value[5];
17226
17227 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17228 MSM_AFE_PORT_TYPE_TX;
17229 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17230 __func__, app_type, module_id,
17231 instance_id, param_id, param_value);
17232
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017233 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17234 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017235 return -ENOMEM;
17236
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017237 memset(&param_hdr, 0, sizeof(param_hdr));
17238 param_hdr.module_id = module_id;
17239 param_hdr.instance_id = instance_id;
17240 param_hdr.param_id = param_id;
17241 param_hdr.param_size = sizeof(uint32_t);
17242
17243 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017244
17245 mutex_lock(&routing_lock);
17246 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17247 if (is_be_dai_extproc(be_id))
17248 continue;
17249
17250 bedai = &msm_bedais[be_id];
17251 if (afe_get_port_type(bedai->port_id) != port_type)
17252 continue;
17253
17254 if (!bedai->active)
17255 continue;
17256
17257 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17258 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17259 continue;
17260
17261 if (app_type !=
17262 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17263 continue;
17264
17265 copp = session_copp_map[fe_id][dir][be_id];
17266 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17267 copp_idx++) {
17268 if (!test_bit(copp_idx, &copp))
17269 continue;
17270
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017271 ret = q6common_pack_pp_params(packed_params,
17272 &param_hdr,
17273 (u8 *) &param_value,
17274 &packed_param_size);
17275 if (ret) {
17276 pr_err("%s: Failed to pack params, error %d\n",
17277 __func__, ret);
17278 goto done;
17279 }
17280
17281 ret = adm_set_pp_params(bedai->port_id,
17282 copp_idx, NULL,
17283 packed_params,
17284 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017285 if (ret) {
17286 pr_err("%s: Setting param failed with err=%d\n",
17287 __func__, ret);
17288 ret = -EINVAL;
17289 goto done;
17290 }
17291 }
17292 }
17293 }
17294done:
17295 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017296 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017297 return ret;
17298}
17299
17300static const struct snd_kcontrol_new module_cfg_controls[] = {
17301 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17302 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17303};
17304
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017305static int msm_routing_get_lsm_app_type_cfg_control(
17306 struct snd_kcontrol *kcontrol,
17307 struct snd_ctl_elem_value *ucontrol)
17308{
Meng Wangadbca4f2018-10-29 14:30:13 +080017309 int shift = ((struct soc_multi_mixer_control *)
17310 kcontrol->private_value)->shift;
17311 int i = 0, j = 0;
17312
17313 ucontrol->value.integer.value[i] = num_app_cfg_types;
17314
17315 for (j = 0; j < num_app_cfg_types; ++j) {
17316 ucontrol->value.integer.value[++i] =
17317 lsm_app_type_cfg[j].app_type;
17318 ucontrol->value.integer.value[++i] =
17319 lsm_app_type_cfg[j].sample_rate;
17320 ucontrol->value.integer.value[++i] =
17321 lsm_app_type_cfg[j].bit_width;
17322 if (shift == 1)
17323 ucontrol->value.integer.value[++i] =
17324 lsm_app_type_cfg[j].num_out_channels;
17325 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017326 return 0;
17327}
17328
17329static int msm_routing_put_lsm_app_type_cfg_control(
17330 struct snd_kcontrol *kcontrol,
17331 struct snd_ctl_elem_value *ucontrol)
17332{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017333 int shift = ((struct soc_multi_mixer_control *)
17334 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017335 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017336
Meng Wangadbca4f2018-10-29 14:30:13 +080017337 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017338 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017339 sizeof(struct msm_pcm_routing_app_type_data));
17340
Meng Wangadbca4f2018-10-29 14:30:13 +080017341 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017342 pr_err("%s: number of app types exceed the max supported\n",
17343 __func__);
17344 return -EINVAL;
17345 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017346
Meng Wangadbca4f2018-10-29 14:30:13 +080017347 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017348 lsm_app_type_cfg[j].app_type =
17349 ucontrol->value.integer.value[i++];
17350 lsm_app_type_cfg[j].sample_rate =
17351 ucontrol->value.integer.value[i++];
17352 lsm_app_type_cfg[j].bit_width =
17353 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017354 /* Shift of 1 indicates this is V2 mixer control */
17355 if (shift == 1)
17356 lsm_app_type_cfg[j].num_out_channels =
17357 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017358 }
17359
17360 return 0;
17361}
17362
17363static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17364 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17365 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17366 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017367 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17368 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17369 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017370};
17371
17372static int msm_routing_get_use_ds1_or_ds2_control(
17373 struct snd_kcontrol *kcontrol,
17374 struct snd_ctl_elem_value *ucontrol)
17375{
17376 ucontrol->value.integer.value[0] = is_ds2_on;
17377 return 0;
17378}
17379
17380static int msm_routing_put_use_ds1_or_ds2_control(
17381 struct snd_kcontrol *kcontrol,
17382 struct snd_ctl_elem_value *ucontrol)
17383{
17384 is_ds2_on = ucontrol->value.integer.value[0];
17385 return 0;
17386}
17387
17388static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17389 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17390 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17391 msm_routing_put_use_ds1_or_ds2_control),
17392};
17393
17394int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17395 struct snd_ctl_elem_value *ucontrol) {
17396 int rc = 0;
17397 int be_idx = 0;
17398 char *param_value;
17399 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017400 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17401 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017402
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017403 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017404 if (!param_value)
17405 return -ENOMEM;
17406
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017407 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017408 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17409 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17410 break;
17411 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017412 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17413 param_hdr.instance_id = INSTANCE_ID_0;
17414 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17415 param_hdr.param_size = param_size;
17416 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17417 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017418 if (rc) {
17419 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17420 kfree(param_value);
17421 return -EINVAL;
17422 }
17423 update_param_value = (int *)param_value;
17424 ucontrol->value.integer.value[0] = update_param_value[0];
17425
17426 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17427 __func__, update_param_value[0]);
17428 }
17429 kfree(param_value);
17430 return 0;
17431}
17432
17433static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17434 struct snd_ctl_elem_value *ucontrol)
17435{
17436 voc_session_id = ucontrol->value.integer.value[0];
17437
17438 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17439
17440 return 0;
17441}
17442
17443static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17444 struct snd_ctl_elem_value *ucontrol)
17445{
17446 ucontrol->value.integer.value[0] = voc_session_id;
17447
17448 return 0;
17449}
17450
17451static struct snd_kcontrol_new msm_voc_session_controls[] = {
17452 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17453 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17454 msm_voc_session_id_put),
17455};
17456
17457static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17458 struct snd_ctl_elem_info *uinfo)
17459{
17460 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17461 uinfo->count = sizeof(struct sound_focus_param);
17462
17463 return 0;
17464}
17465
17466static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17467 struct snd_ctl_elem_value *ucontrol)
17468{
17469 int ret = 0;
17470 struct sound_focus_param soundFocusData;
17471
17472 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17473 sizeof(struct sound_focus_param));
17474 ret = voc_set_sound_focus(soundFocusData);
17475 if (ret) {
17476 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17477 __func__, ret);
17478
17479 ret = -EINVAL;
17480 }
17481
17482 return ret;
17483}
17484
17485static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17486 struct snd_ctl_elem_value *ucontrol)
17487{
17488 int ret = 0;
17489 struct sound_focus_param soundFocusData;
17490
17491 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17492
17493 ret = voc_get_sound_focus(&soundFocusData);
17494 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017495 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017496 __func__, ret);
17497
17498 ret = -EINVAL;
17499 goto done;
17500 }
17501 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17502 sizeof(struct sound_focus_param));
17503
17504done:
17505 return ret;
17506}
17507
17508static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17509 struct snd_ctl_elem_info *uinfo)
17510{
17511 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17512 uinfo->count = sizeof(struct source_tracking_param);
17513
17514 return 0;
17515}
17516
17517static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17518 struct snd_ctl_elem_value *ucontrol)
17519{
Meng Wang92edfde2018-04-24 12:18:37 +080017520 int ret = 0;
17521 struct source_tracking_param sourceTrackingData;
17522
17523 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17524
17525 ret = voc_get_source_tracking(&sourceTrackingData);
17526 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017527 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080017528 __func__, ret);
17529
17530 ret = -EINVAL;
17531 goto done;
17532 }
17533 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17534 sizeof(struct source_tracking_param));
17535
17536done:
17537 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017538}
17539
17540static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17541 int *copp_idx)
17542{
17543 int i, idx, be_idx;
17544 int ret = 0;
17545 unsigned long copp;
17546
17547 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17548
17549 ret = q6audio_validate_port(port_id);
17550 if (ret < 0) {
17551 pr_err("%s: port validation failed id 0x%x ret %d\n",
17552 __func__, port_id, ret);
17553
17554 ret = -EINVAL;
17555 goto done;
17556 }
17557
17558 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
17559 if (msm_bedais[be_idx].port_id == port_id)
17560 break;
17561 }
17562 if (be_idx >= MSM_BACKEND_DAI_MAX) {
17563 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
17564
17565 ret = -EINVAL;
17566 goto done;
17567 }
17568
17569 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
17570 MSM_FRONTEND_DAI_MM_SIZE) {
17571 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17572 copp = session_copp_map[i]
17573 [session_type][be_idx];
17574 if (test_bit(idx, &copp))
17575 break;
17576 }
17577 if (idx >= MAX_COPPS_PER_PORT)
17578 continue;
17579 else
17580 break;
17581 }
17582 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017583 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017584
17585 ret = -EINVAL;
17586 goto done;
17587 }
17588 *copp_idx = idx;
17589 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17590
17591done:
17592 return ret;
17593}
17594
17595static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17596 const char *prefix, int *port_id)
17597{
17598 int ret = 0;
17599
17600 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17601
17602 /*
17603 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17604 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17605 * and compare the string with the backend name to derive the port id.
17606 */
17607 if (!strcmp(kcontrol->id.name + strlen(prefix),
17608 "SLIMBUS_0")) {
17609 *port_id = SLIMBUS_0_TX;
17610 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17611 "TERT_MI2S")) {
17612 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17613 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17614 "INT3_MI2S")) {
17615 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017616 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17617 "VA_CDC_DMA_TX_0")) {
17618 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017619 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17620 "TX_CDC_DMA_TX_3")) {
17621 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017622 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17623 "QUIN_TDM_TX_0")) {
17624 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017625 } else {
17626 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17627 __func__, kcontrol->id.name);
17628
17629 ret = -EINVAL;
17630 goto done;
17631 }
17632 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17633 __func__, kcontrol->id.name, *port_id);
17634
17635done:
17636 return ret;
17637}
17638
17639static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17640 struct snd_ctl_elem_value *ucontrol)
17641{
17642 int ret = 0;
17643 struct sound_focus_param soundFocusData;
17644 int port_id, copp_idx;
17645
17646 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17647 "Sound Focus Audio Tx ", &port_id);
17648 if (ret != 0) {
17649 pr_err("%s: Error in deriving port id, err=%d\n",
17650 __func__, ret);
17651
17652 ret = -EINVAL;
17653 goto done;
17654 }
17655
17656 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17657 &copp_idx);
17658 if (ret) {
17659 pr_err("%s: Could not get copp idx for port_id=%d\n",
17660 __func__, port_id);
17661
17662 ret = -EINVAL;
17663 goto done;
17664 }
17665
17666 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17667 sizeof(struct sound_focus_param));
17668
17669 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17670 if (ret) {
17671 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17672 __func__, ret);
17673
17674 ret = -EINVAL;
17675 goto done;
17676 }
17677
17678done:
17679 return ret;
17680}
17681
17682static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17683 struct snd_ctl_elem_value *ucontrol)
17684{
17685 int ret = 0;
17686 struct sound_focus_param soundFocusData;
17687 int port_id, copp_idx;
17688
17689 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17690 "Sound Focus Audio Tx ", &port_id);
17691 if (ret) {
17692 pr_err("%s: Error in deriving port id, err=%d\n",
17693 __func__, ret);
17694
17695 ret = -EINVAL;
17696 goto done;
17697 }
17698
17699 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17700 &copp_idx);
17701 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017702 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017703 __func__, port_id);
17704
17705 ret = -EINVAL;
17706 goto done;
17707 }
17708
17709 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17710 if (ret) {
17711 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17712 __func__, ret);
17713
17714 ret = -EINVAL;
17715 goto done;
17716 }
17717
17718 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17719 sizeof(struct sound_focus_param));
17720
17721done:
17722 return ret;
17723}
17724
17725static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17726 struct snd_ctl_elem_value *ucontrol)
17727{
17728 int ret = 0;
17729 struct source_tracking_param sourceTrackingData;
17730 int port_id, copp_idx;
17731
17732 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17733 "Source Tracking Audio Tx ", &port_id);
17734 if (ret) {
17735 pr_err("%s: Error in deriving port id, err=%d\n",
17736 __func__, ret);
17737
17738 ret = -EINVAL;
17739 goto done;
17740 }
17741
17742 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17743 &copp_idx);
17744 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017745 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017746 __func__, port_id);
17747
17748 ret = -EINVAL;
17749 goto done;
17750 }
17751
17752 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17753 if (ret) {
17754 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17755 __func__, ret);
17756
17757 ret = -EINVAL;
17758 goto done;
17759 }
17760
17761 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17762 sizeof(struct source_tracking_param));
17763
17764done:
17765 return ret;
17766}
17767
17768static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17769 {
17770 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17771 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17772 .name = "Sound Focus Voice Tx SLIMBUS_0",
17773 .info = msm_sound_focus_info,
17774 .get = msm_voice_sound_focus_get,
17775 .put = msm_voice_sound_focus_put,
17776 },
17777 {
17778 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17779 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17780 .name = "Source Tracking Voice Tx SLIMBUS_0",
17781 .info = msm_source_tracking_info,
17782 .get = msm_voice_source_tracking_get,
17783 },
17784 {
17785 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17786 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17787 .name = "Sound Focus Audio Tx SLIMBUS_0",
17788 .info = msm_sound_focus_info,
17789 .get = msm_audio_sound_focus_get,
17790 .put = msm_audio_sound_focus_put,
17791 },
17792 {
17793 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17794 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17795 .name = "Source Tracking Audio Tx SLIMBUS_0",
17796 .info = msm_source_tracking_info,
17797 .get = msm_audio_source_tracking_get,
17798 },
17799 {
17800 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17801 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17802 .name = "Sound Focus Voice Tx TERT_MI2S",
17803 .info = msm_sound_focus_info,
17804 .get = msm_voice_sound_focus_get,
17805 .put = msm_voice_sound_focus_put,
17806 },
17807 {
17808 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17809 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17810 .name = "Source Tracking Voice Tx TERT_MI2S",
17811 .info = msm_source_tracking_info,
17812 .get = msm_voice_source_tracking_get,
17813 },
17814 {
17815 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17816 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17817 .name = "Sound Focus Audio Tx TERT_MI2S",
17818 .info = msm_sound_focus_info,
17819 .get = msm_audio_sound_focus_get,
17820 .put = msm_audio_sound_focus_put,
17821 },
17822 {
17823 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17824 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17825 .name = "Source Tracking Audio Tx TERT_MI2S",
17826 .info = msm_source_tracking_info,
17827 .get = msm_audio_source_tracking_get,
17828 },
17829 {
17830 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17831 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17832 .name = "Sound Focus Voice Tx INT3_MI2S",
17833 .info = msm_sound_focus_info,
17834 .get = msm_voice_sound_focus_get,
17835 .put = msm_voice_sound_focus_put,
17836 },
17837 {
17838 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17839 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17840 .name = "Source Tracking Voice Tx INT3_MI2S",
17841 .info = msm_source_tracking_info,
17842 .get = msm_voice_source_tracking_get,
17843 },
17844 {
17845 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17846 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17847 .name = "Sound Focus Audio Tx INT3_MI2S",
17848 .info = msm_sound_focus_info,
17849 .get = msm_audio_sound_focus_get,
17850 .put = msm_audio_sound_focus_put,
17851 },
17852 {
17853 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17854 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17855 .name = "Source Tracking Audio Tx INT3_MI2S",
17856 .info = msm_source_tracking_info,
17857 .get = msm_audio_source_tracking_get,
17858 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017859 {
17860 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17861 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17862 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
17863 .info = msm_sound_focus_info,
17864 .get = msm_voice_sound_focus_get,
17865 .put = msm_voice_sound_focus_put,
17866 },
17867 {
17868 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17869 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17870 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
17871 .info = msm_source_tracking_info,
17872 .get = msm_voice_source_tracking_get,
17873 },
17874 {
17875 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17876 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17877 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
17878 .info = msm_sound_focus_info,
17879 .get = msm_audio_sound_focus_get,
17880 .put = msm_audio_sound_focus_put,
17881 },
17882 {
17883 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17884 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17885 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
17886 .info = msm_source_tracking_info,
17887 .get = msm_audio_source_tracking_get,
17888 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017889 {
17890 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17891 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17892 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
17893 .info = msm_sound_focus_info,
17894 .get = msm_voice_sound_focus_get,
17895 .put = msm_voice_sound_focus_put,
17896 },
17897 {
17898 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17899 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17900 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
17901 .info = msm_source_tracking_info,
17902 .get = msm_voice_source_tracking_get,
17903 },
17904 {
17905 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17906 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17907 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
17908 .info = msm_sound_focus_info,
17909 .get = msm_audio_sound_focus_get,
17910 .put = msm_audio_sound_focus_put,
17911 },
17912 {
17913 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17914 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17915 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
17916 .info = msm_source_tracking_info,
17917 .get = msm_audio_source_tracking_get,
17918 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017919 {
17920 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17921 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17922 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
17923 .info = msm_sound_focus_info,
17924 .get = msm_voice_sound_focus_get,
17925 .put = msm_voice_sound_focus_put,
17926 },
17927 {
17928 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17929 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17930 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
17931 .info = msm_source_tracking_info,
17932 .get = msm_voice_source_tracking_get,
17933 },
17934 {
17935 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17936 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17937 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
17938 .info = msm_sound_focus_info,
17939 .get = msm_audio_sound_focus_get,
17940 .put = msm_audio_sound_focus_put,
17941 },
17942 {
17943 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17944 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17945 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
17946 .info = msm_source_tracking_info,
17947 .get = msm_audio_source_tracking_get,
17948 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017949};
17950
17951static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
17952 struct snd_ctl_elem_value *ucontrol)
17953{
17954 int ret = 0;
17955 int item;
17956 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17957
17958 pr_debug("%s item is %d\n", __func__,
17959 ucontrol->value.enumerated.item[0]);
17960 mutex_lock(&routing_lock);
17961 item = ucontrol->value.enumerated.item[0];
17962 if (item < e->items) {
17963 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17964 __func__, e->shift_l, e->values[item]);
17965 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17966 e->values[item] < MSM_BACKEND_DAI_MAX)
17967 /* Enable feedback TX path */
17968 ret = afe_spk_prot_feed_back_cfg(
17969 msm_bedais[e->values[item]].port_id,
17970 msm_bedais[e->shift_l].port_id, 1, 0, 1);
17971 else {
17972 pr_debug("%s values are out of range item %d\n",
17973 __func__, e->values[item]);
17974 /* Disable feedback TX path */
17975 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17976 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
17977 else
17978 ret = -EINVAL;
17979 }
17980 } else {
17981 pr_err("%s item value is out of range item\n", __func__);
17982 ret = -EINVAL;
17983 }
17984 mutex_unlock(&routing_lock);
17985 return ret;
17986}
17987
17988static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
17989 struct snd_ctl_elem_value *ucontrol)
17990{
17991 int ret = 0;
17992 int item;
17993 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17994
17995 pr_debug("%s item is %d\n", __func__,
17996 ucontrol->value.enumerated.item[0]);
17997 mutex_lock(&routing_lock);
17998 item = ucontrol->value.enumerated.item[0];
17999 if (item < e->items) {
18000 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18001 __func__, e->shift_l, e->values[item]);
18002 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18003 e->values[item] < MSM_BACKEND_DAI_MAX)
18004 /* Enable feedback TX path */
18005 ret = afe_spk_prot_feed_back_cfg(
18006 msm_bedais[e->values[item]].port_id,
18007 msm_bedais[e->shift_l].port_id,
18008 1, 1, 1);
18009 else {
18010 pr_debug("%s values are out of range item %d\n",
18011 __func__, e->values[item]);
18012 /* Disable feedback TX path */
18013 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18014 ret = afe_spk_prot_feed_back_cfg(0,
18015 0, 0, 0, 0);
18016 else
18017 ret = -EINVAL;
18018 }
18019 } else {
18020 pr_err("%s item value is out of range item\n", __func__);
18021 ret = -EINVAL;
18022 }
18023 mutex_unlock(&routing_lock);
18024 return ret;
18025}
18026
18027static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
18028 struct snd_ctl_elem_value *ucontrol)
18029{
18030 pr_debug("%s\n", __func__);
18031 return 0;
18032}
18033
18034static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
18035 struct snd_ctl_elem_value *ucontrol)
18036{
18037 pr_debug("%s\n", __func__);
18038 ucontrol->value.enumerated.item[0] = 0;
18039 return 0;
18040}
18041
18042static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
18043 "ZERO", "SLIM4_TX"
18044};
18045
18046static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
18047 "ZERO", "SLIM4_TX"
18048};
18049
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018050static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
18051 "ZERO", "WSA_CDC_DMA_TX_0"
18052};
18053
18054static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
18055 "ZERO", "WSA_CDC_DMA_TX_0"
18056};
18057
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018058static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
18059 "ZERO", "SENARY_TX"
18060};
18061
18062static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
18063 "ZERO", "INT5_MI2S_TX"
18064};
18065
18066static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
18067 "ZERO", "INT5_MI2S_TX"
18068};
18069
18070static const int const slim0_rx_vi_fb_tx_lch_value[] = {
18071 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18072};
18073
18074static const int const slim0_rx_vi_fb_tx_rch_value[] = {
18075 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18076};
18077
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018078static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
18079 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18080};
18081
18082static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
18083 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18084};
18085
18086
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018087static const int const mi2s_rx_vi_fb_tx_value[] = {
18088 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18089};
18090
18091static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
18092 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18093};
18094
18095static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
18096 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18097};
18098
18099static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18100 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18101 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18102 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18103
18104static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18105 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18106 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18107 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18108
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018109static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18110 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18111 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18112 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18113
18114static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18115 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18116 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18117 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18118
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018119static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18120 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18121 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18122 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18123
18124static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18125 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18126 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18127 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18128 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18129
18130static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18131 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18132 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18133 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18134 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18135
18136static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18137 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18138 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18139 spkr_prot_put_vi_lch_port);
18140
18141static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18142 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18143 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18144 spkr_prot_put_vi_rch_port);
18145
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018146static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18147 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18148 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18149 spkr_prot_put_vi_lch_port);
18150
18151static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18152 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18153 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18154 spkr_prot_put_vi_rch_port);
18155
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018156static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18157 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18158 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18159 spkr_prot_put_vi_lch_port);
18160
18161static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18162 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18163 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18164 spkr_prot_put_vi_lch_port);
18165
18166static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18167 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18168 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18169 spkr_prot_put_vi_rch_port);
18170
18171static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18172 /* Frontend AIF */
18173 /* Widget name equals to Front-End DAI name<Need confirmation>,
18174 * Stream name must contains substring of front-end dai name
18175 */
18176 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18177 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18178 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18179 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18180 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18181 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18182 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18183 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18184 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18185 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18186 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18187 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18188 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18189 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18190 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18191 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18192 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018193 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018194 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018195 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18196 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18197 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18198 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18199 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18200 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18201 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18202 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18203 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018204 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018205 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018206 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18207 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18208 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18209 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018210 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018211 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018212 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18213 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018214 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18215 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18216 "VoiceMMode1 Playback", 0, 0, 0, 0),
18217 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18218 "VoiceMMode1 Capture", 0, 0, 0, 0),
18219 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18220 "VoiceMMode2 Playback", 0, 0, 0, 0),
18221 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18222 "VoiceMMode2 Capture", 0, 0, 0, 0),
18223 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18224 0, 0, 0, 0),
18225 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18226 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018227 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18228 0, 0, 0, 0),
18229 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18230 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018231 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18232 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018233 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18234 0, 0, 0, 0),
18235 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18236 0, 0, 0, 0),
18237 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18238 0, 0, 0, 0),
18239 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18240 0, 0, 0, 0),
18241 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18242 0, 0, 0, 0),
18243 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18244 0, 0, 0, 0),
18245 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18246 0, 0, 0, 0),
18247 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18248 0, 0, 0, 0),
18249 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18250 0, 0, 0, 0),
18251 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18252 0, 0, 0, 0),
18253 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18254 0, 0, 0, 0),
18255 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18256 0, 0, 0, 0),
18257 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18258 0, 0, 0, 0),
18259 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18260 0, 0, 0, 0),
18261 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18262 0, 0, 0, 0),
18263 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18264 0, 0, 0, 0),
18265 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18266 0, 0, 0, 0),
18267 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18268 0, 0, 0, 0),
18269 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18270 0, 0, 0, 0),
18271 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18272 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18273 0, 0, 0, 0),
18274 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18275 "INT0 MI2S_RX Hostless Playback",
18276 0, 0, 0, 0),
18277 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18278 "INT4 MI2S_RX Hostless Playback",
18279 0, 0, 0, 0),
18280 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18281 "Primary MI2S_RX Hostless Playback",
18282 0, 0, 0, 0),
18283 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18284 "Secondary MI2S_RX Hostless Playback",
18285 0, 0, 0, 0),
18286 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18287 "Tertiary MI2S_RX Hostless Playback",
18288 0, 0, 0, 0),
18289 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18290 "Quaternary MI2S_RX Hostless Playback",
18291 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018292 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18293 "Quinary MI2S_RX Hostless Playback",
18294 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018295
18296 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18297 0, 0, 0, 0),
18298 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18299 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018300 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18301 0, 0, 0, 0),
18302 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18303 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018304 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18305 0, 0, 0, 0),
18306 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18307 "INT3 MI2S_TX Hostless Capture",
18308 0, 0, 0, 0),
18309 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18310 "Tertiary MI2S_TX Hostless Capture",
18311 0, 0, 0, 0),
18312 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18313 "Secondary MI2S_TX Hostless Capture",
18314 0, 0, 0, 0),
18315 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18316 "Primary MI2S_TX Hostless Capture",
18317 0, 0, 0, 0),
18318 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18319 0, 0, 0, 0),
18320 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18321 0, 0, 0, 0),
18322 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18323 "Quaternary MI2S_TX Hostless Capture",
18324 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018325 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18326 "Quinary MI2S_TX Hostless Capture",
18327 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018328
18329 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18330 "Primary TDM0 Hostless Playback",
18331 0, 0, 0, 0),
18332 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18333 "Primary TDM0 Hostless Capture",
18334 0, 0, 0, 0),
18335 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18336 "Primary TDM1 Hostless Playback",
18337 0, 0, 0, 0),
18338 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18339 "Primary TDM1 Hostless Capture",
18340 0, 0, 0, 0),
18341 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18342 "Primary TDM2 Hostless Playback",
18343 0, 0, 0, 0),
18344 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18345 "Primary TDM2 Hostless Capture",
18346 0, 0, 0, 0),
18347 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18348 "Primary TDM3 Hostless Playback",
18349 0, 0, 0, 0),
18350 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18351 "Primary TDM3 Hostless Capture",
18352 0, 0, 0, 0),
18353 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18354 "Primary TDM4 Hostless Playback",
18355 0, 0, 0, 0),
18356 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18357 "Primary TDM4 Hostless Capture",
18358 0, 0, 0, 0),
18359 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18360 "Primary TDM5 Hostless Playback",
18361 0, 0, 0, 0),
18362 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18363 "Primary TDM5 Hostless Capture",
18364 0, 0, 0, 0),
18365 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18366 "Primary TDM6 Hostless Playback",
18367 0, 0, 0, 0),
18368 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18369 "Primary TDM6 Hostless Capture",
18370 0, 0, 0, 0),
18371 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18372 "Primary TDM7 Hostless Playback",
18373 0, 0, 0, 0),
18374 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18375 "Primary TDM7 Hostless Capture",
18376 0, 0, 0, 0),
18377 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18378 "Secondary TDM0 Hostless Playback",
18379 0, 0, 0, 0),
18380 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18381 "Secondary TDM0 Hostless Capture",
18382 0, 0, 0, 0),
18383 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18384 "Secondary TDM1 Hostless Playback",
18385 0, 0, 0, 0),
18386 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18387 "Secondary TDM1 Hostless Capture",
18388 0, 0, 0, 0),
18389 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18390 "Secondary TDM2 Hostless Playback",
18391 0, 0, 0, 0),
18392 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18393 "Secondary TDM2 Hostless Capture",
18394 0, 0, 0, 0),
18395 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18396 "Secondary TDM3 Hostless Playback",
18397 0, 0, 0, 0),
18398 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18399 "Secondary TDM3 Hostless Capture",
18400 0, 0, 0, 0),
18401 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18402 "Secondary TDM4 Hostless Playback",
18403 0, 0, 0, 0),
18404 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18405 "Secondary TDM4 Hostless Capture",
18406 0, 0, 0, 0),
18407 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18408 "Secondary TDM5 Hostless Playback",
18409 0, 0, 0, 0),
18410 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18411 "Secondary TDM5 Hostless Capture",
18412 0, 0, 0, 0),
18413 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18414 "Secondary TDM6 Hostless Playback",
18415 0, 0, 0, 0),
18416 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18417 "Secondary TDM6 Hostless Capture",
18418 0, 0, 0, 0),
18419 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18420 "Secondary TDM7 Hostless Playback",
18421 0, 0, 0, 0),
18422 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18423 "Secondary TDM7 Hostless Capture",
18424 0, 0, 0, 0),
18425 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18426 "Tertiary TDM0 Hostless Playback",
18427 0, 0, 0, 0),
18428 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18429 "Tertiary TDM0 Hostless Capture",
18430 0, 0, 0, 0),
18431 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18432 "Tertiary TDM1 Hostless Playback",
18433 0, 0, 0, 0),
18434 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18435 "Tertiary TDM1 Hostless Capture",
18436 0, 0, 0, 0),
18437 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18438 "Tertiary TDM2 Hostless Playback",
18439 0, 0, 0, 0),
18440 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18441 "Tertiary TDM2 Hostless Capture",
18442 0, 0, 0, 0),
18443 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18444 "Tertiary TDM3 Hostless Playback",
18445 0, 0, 0, 0),
18446 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18447 "Tertiary TDM3 Hostless Capture",
18448 0, 0, 0, 0),
18449 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18450 "Tertiary TDM4 Hostless Playback",
18451 0, 0, 0, 0),
18452 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18453 "Tertiary TDM4 Hostless Capture",
18454 0, 0, 0, 0),
18455 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
18456 "Tertiary TDM5 Hostless Playback",
18457 0, 0, 0, 0),
18458 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
18459 "Tertiary TDM5 Hostless Capture",
18460 0, 0, 0, 0),
18461 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
18462 "Tertiary TDM6 Hostless Playback",
18463 0, 0, 0, 0),
18464 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
18465 "Tertiary TDM6 Hostless Capture",
18466 0, 0, 0, 0),
18467 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
18468 "Tertiary TDM7 Hostless Playback",
18469 0, 0, 0, 0),
18470 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
18471 "Tertiary TDM7 Hostless Capture",
18472 0, 0, 0, 0),
18473 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
18474 "Quaternary TDM0 Hostless Playback",
18475 0, 0, 0, 0),
18476 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
18477 "Quaternary TDM0 Hostless Capture",
18478 0, 0, 0, 0),
18479 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
18480 "Quaternary TDM1 Hostless Playback",
18481 0, 0, 0, 0),
18482 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
18483 "Quaternary TDM1 Hostless Capture",
18484 0, 0, 0, 0),
18485 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
18486 "Quaternary TDM2 Hostless Playback",
18487 0, 0, 0, 0),
18488 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
18489 "Quaternary TDM2 Hostless Capture",
18490 0, 0, 0, 0),
18491 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
18492 "Quaternary TDM3 Hostless Playback",
18493 0, 0, 0, 0),
18494 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
18495 "Quaternary TDM3 Hostless Capture",
18496 0, 0, 0, 0),
18497 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
18498 "Quaternary TDM4 Hostless Playback",
18499 0, 0, 0, 0),
18500 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
18501 "Quaternary TDM4 Hostless Capture",
18502 0, 0, 0, 0),
18503 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
18504 "Quaternary TDM5 Hostless Playback",
18505 0, 0, 0, 0),
18506 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
18507 "Quaternary TDM5 Hostless Capture",
18508 0, 0, 0, 0),
18509 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
18510 "Quaternary TDM6 Hostless Playback",
18511 0, 0, 0, 0),
18512 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
18513 "Quaternary TDM6 Hostless Capture",
18514 0, 0, 0, 0),
18515 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
18516 "Quaternary TDM7 Hostless Playback",
18517 0, 0, 0, 0),
18518 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
18519 "Quaternary TDM7 Hostless Capture",
18520 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018521 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
18522 "Quinary TDM0 Hostless Playback",
18523 0, 0, 0, 0),
18524 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
18525 "Quinary TDM0 Hostless Capture",
18526 0, 0, 0, 0),
18527 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
18528 "Quinary TDM1 Hostless Playback",
18529 0, 0, 0, 0),
18530 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
18531 "Quinary TDM1 Hostless Capture",
18532 0, 0, 0, 0),
18533 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
18534 "Quinary TDM2 Hostless Playback",
18535 0, 0, 0, 0),
18536 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
18537 "Quinary TDM2 Hostless Capture",
18538 0, 0, 0, 0),
18539 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
18540 "Quinary TDM3 Hostless Playback",
18541 0, 0, 0, 0),
18542 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
18543 "Quinary TDM3 Hostless Capture",
18544 0, 0, 0, 0),
18545 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
18546 "Quinary TDM4 Hostless Playback",
18547 0, 0, 0, 0),
18548 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
18549 "Quinary TDM4 Hostless Capture",
18550 0, 0, 0, 0),
18551 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
18552 "Quinary TDM5 Hostless Playback",
18553 0, 0, 0, 0),
18554 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
18555 "Quinary TDM5 Hostless Capture",
18556 0, 0, 0, 0),
18557 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
18558 "Quinary TDM6 Hostless Playback",
18559 0, 0, 0, 0),
18560 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
18561 "Quinary TDM6 Hostless Capture",
18562 0, 0, 0, 0),
18563 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
18564 "Quinary TDM7 Hostless Playback",
18565 0, 0, 0, 0),
18566 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
18567 "Quinary TDM7 Hostless Capture",
18568 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018569
18570 /* LSM */
18571 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
18572 0, 0, 0, 0),
18573 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
18574 0, 0, 0, 0),
18575 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
18576 0, 0, 0, 0),
18577 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
18578 0, 0, 0, 0),
18579 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
18580 0, 0, 0, 0),
18581 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
18582 0, 0, 0, 0),
18583 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
18584 0, 0, 0, 0),
18585 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
18586 0, 0, 0, 0),
18587 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
18588 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
18589 /* Backend AIF */
18590 /* Stream name equals to backend dai link stream name */
18591 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
18592 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
18593 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020018594 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
18595 0, 0, 0, 0),
18596 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
18597 0, 0, 0, 0),
18598 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
18599 0, 0, 0, 0),
18600 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
18601 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018602 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
18603 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
18604 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
18605 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
18606 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
18607 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018608 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
18609 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018610 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
18611 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
18612 0, 0, 0, 0),
18613 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
18614 0, 0, 0, 0),
18615 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
18616 0, 0, 0, 0),
18617 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
18618 "Secondary MI2S Playback SD1",
18619 0, 0, 0, 0),
18620 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
18621 0, 0, 0, 0),
18622 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
18623 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018624 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
18625 0, 0, 0, 0),
18626 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
18627 0, 0, 0, 0),
18628 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
18629 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018630 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
18631 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018632 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
18633 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018634 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
18635 0, 0, 0, 0),
18636 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
18637 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
18638 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
18639 0, 0, 0, 0),
18640 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
18641 0, 0, 0, 0),
18642 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
18643 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018644 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
18645 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018646 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
18647 0, 0, 0, 0),
18648 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
18649 0, 0, 0, 0),
18650 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
18651 0, 0, 0, 0),
18652 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
18653 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
18654 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
18655 0, 0, 0, 0),
18656 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
18657 0, 0, 0, 0),
18658 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
18659 0, 0, 0, 0),
18660 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
18661 0, 0, 0, 0),
18662 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
18663 0, 0, 0, 0),
18664 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
18665 0, 0, 0, 0),
18666 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
18667 0, 0, 0, 0),
18668 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18669 0, 0, 0, 0),
18670 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18671 0, 0, 0, 0),
18672 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18673 0, 0, 0, 0),
18674 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18675 0, 0, 0, 0),
18676 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18677 0, 0, 0, 0),
18678 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18679 0, 0, 0, 0),
18680 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18681 0, 0, 0, 0),
18682 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18683 0, 0, 0, 0),
18684 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18685 0, 0, 0, 0),
18686 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18687 0, 0, 0, 0),
18688 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18689 0, 0, 0, 0),
18690 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18691 0, 0, 0, 0),
18692 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18693 0, 0, 0, 0),
18694 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18695 0, 0, 0, 0),
18696 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18697 0, 0, 0, 0),
18698 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18699 0, 0, 0, 0),
18700 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18701 0, 0, 0, 0),
18702 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18703 0, 0, 0, 0),
18704 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18705 0, 0, 0, 0),
18706 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18707 0, 0, 0, 0),
18708 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18709 0, 0, 0, 0),
18710 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18711 0, 0, 0, 0),
18712 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18713 0, 0, 0, 0),
18714 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18715 0, 0, 0, 0),
18716 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18717 0, 0, 0, 0),
18718 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18719 0, 0, 0, 0),
18720 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18721 0, 0, 0, 0),
18722 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18723 0, 0, 0, 0),
18724 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18725 0, 0, 0, 0),
18726 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18727 0, 0, 0, 0),
18728 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18729 0, 0, 0, 0),
18730 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18731 0, 0, 0, 0),
18732 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18733 0, 0, 0, 0),
18734 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18735 0, 0, 0, 0),
18736 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18737 0, 0, 0, 0),
18738 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18739 0, 0, 0, 0),
18740 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18741 0, 0, 0, 0),
18742 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18743 0, 0, 0, 0),
18744 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18745 0, 0, 0, 0),
18746 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18747 0, 0, 0, 0),
18748 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18749 0, 0, 0, 0),
18750 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18751 0, 0, 0, 0),
18752 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18753 0, 0, 0, 0),
18754 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18755 0, 0, 0, 0),
18756 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18757 0, 0, 0, 0),
18758 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18759 0, 0, 0, 0),
18760 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18761 0, 0, 0, 0),
18762 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18763 0, 0, 0, 0),
18764 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18765 0, 0, 0, 0),
18766 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18767 0, 0, 0, 0),
18768 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18769 0, 0, 0, 0),
18770 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18771 0, 0, 0, 0),
18772 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18773 0, 0, 0, 0),
18774 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18775 0, 0, 0, 0),
18776 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18777 0, 0, 0, 0),
18778 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18779 0, 0, 0, 0),
18780 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18781 0, 0, 0, 0),
18782 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18783 0, 0, 0, 0),
18784 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18785 0, 0, 0, 0),
18786 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18787 0, 0, 0, 0),
18788 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18789 0, 0, 0, 0),
18790 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18791 0, 0, 0, 0),
18792 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
18793 0, 0, 0, 0),
18794 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
18795 0, 0, 0, 0),
18796 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
18797 0, 0, 0, 0),
18798 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
18799 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018800 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
18801 0, 0, 0, 0),
18802 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
18803 0, 0, 0, 0),
18804 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
18805 0, 0, 0, 0),
18806 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
18807 0, 0, 0, 0),
18808 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
18809 0, 0, 0, 0),
18810 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
18811 0, 0, 0, 0),
18812 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
18813 0, 0, 0, 0),
18814 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
18815 0, 0, 0, 0),
18816 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
18817 0, 0, 0, 0),
18818 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
18819 0, 0, 0, 0),
18820 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
18821 0, 0, 0, 0),
18822 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
18823 0, 0, 0, 0),
18824 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
18825 0, 0, 0, 0),
18826 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
18827 0, 0, 0, 0),
18828 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
18829 0, 0, 0, 0),
18830 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
18831 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018832 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
18833 0, 0, 0, 0),
18834 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
18835 0, 0, 0, 0),
18836 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
18837 0, 0, 0, 0),
18838 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
18839 0, 0, 0, 0),
18840 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
18841 0, 0, 0, 0),
18842 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
18843 0, 0, 0, 0),
18844 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
18845 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018846 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
18847 0, 0, 0, 0),
18848 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
18849 0, 0, 0, 0),
18850 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
18851 0, 0, 0, 0),
18852 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
18853 0, 0, 0, 0),
18854 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
18855 0, 0, 0, 0),
18856 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
18857 0, 0, 0, 0),
18858 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
18859 0, 0, 0, 0),
18860 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
18861 0, 0, 0, 0),
18862 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
18863 0, 0, 0, 0),
18864 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
18865 0, 0, 0, 0),
18866 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
18867 0, 0, 0, 0),
18868 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
18869 0, 0, 0, 0),
18870 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
18871 0, 0, 0, 0),
18872 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
18873 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018874 /* incall */
18875 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
18876 0, 0, 0, 0),
18877 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
18878 0, 0, 0, 0),
18879 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
18880 0, 0, 0, 0),
18881 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
18882 0, 0, 0, 0),
18883 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
18884 0, 0, 0, 0),
18885 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
18886 0, 0, 0, 0),
18887 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
18888 0, 0, 0, 0),
18889 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
18890 0, 0, 0, 0),
18891 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
18892
18893 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
18894 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
18895 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
18896 0, 0, 0, 0),
18897 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
18898 0, 0, 0, 0),
18899 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
18900 0, 0, 0, 0),
18901 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
18902 0, 0, 0, 0),
18903 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
18904 0, 0, 0, 0),
18905 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
18906 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018907 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
18908 0, 0, 0, 0),
18909 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
18910 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018911 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
18912 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
18913 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
18914 0, 0, 0, 0),
18915 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
18916 0, 0, 0, 0),
18917 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
18918 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
18919 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
18920 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
18921 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
18922 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
18923 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
18924 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
18925 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
18926 /* In- call recording */
18927 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
18928 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053018929 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
18930 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018931 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
18932 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
18933
18934 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
18935 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053018936 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
18937 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018938 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
18939 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
18940
18941 /* Switch Definitions */
18942 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
18943 &slim_fm_switch_mixer_controls),
18944 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
18945 &slim1_fm_switch_mixer_controls),
18946 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
18947 &slim3_fm_switch_mixer_controls),
18948 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
18949 &slim4_fm_switch_mixer_controls),
18950 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
18951 &slim6_fm_switch_mixer_controls),
18952 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18953 &pcm_rx_switch_mixer_controls),
18954 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18955 &int0_mi2s_rx_switch_mixer_controls),
18956 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18957 &int4_mi2s_rx_switch_mixer_controls),
18958 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18959 &pri_mi2s_rx_switch_mixer_controls),
18960 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18961 &sec_mi2s_rx_switch_mixer_controls),
18962 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18963 &tert_mi2s_rx_switch_mixer_controls),
18964 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18965 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053018966 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18967 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018968 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18969 &hfp_pri_aux_switch_mixer_controls),
18970 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18971 &hfp_aux_switch_mixer_controls),
18972 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
18973 &hfp_int_switch_mixer_controls),
18974 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18975 &hfp_slim7_switch_mixer_controls),
18976 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
18977 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080018978 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18979 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018980 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018981 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018982 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018983 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018984
18985 /* Mixer definitions */
18986 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18987 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
18988 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18989 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
18990 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18991 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
18992 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18993 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
18994 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18995 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
18996 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18997 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053018998 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18999 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019000 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
19001 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
19002 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
19003 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019004 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
19005 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020019006 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19007 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
19008 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19009 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019010 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19011 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
19012 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19013 quaternary_mi2s_rx_mixer_controls,
19014 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
19015 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19016 tertiary_mi2s_rx_mixer_controls,
19017 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
19018 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19019 secondary_mi2s_rx_mixer_controls,
19020 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
19021 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19022 secondary_mi2s_rx2_mixer_controls,
19023 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
19024 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19025 primary_mi2s_rx_mixer_controls,
19026 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
19027 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19028 int0_mi2s_rx_mixer_controls,
19029 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
19030 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19031 int4_mi2s_rx_mixer_controls,
19032 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
19033 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19034 quinary_mi2s_rx_mixer_controls,
19035 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
19036 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19037 pri_tdm_rx_0_mixer_controls,
19038 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
19039 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19040 pri_tdm_rx_1_mixer_controls,
19041 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
19042 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19043 pri_tdm_rx_2_mixer_controls,
19044 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
19045 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19046 pri_tdm_rx_3_mixer_controls,
19047 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
19048 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19049 pri_tdm_tx_0_mixer_controls,
19050 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
19051 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19052 sec_tdm_rx_0_mixer_controls,
19053 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
19054 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19055 sec_tdm_rx_1_mixer_controls,
19056 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
19057 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19058 sec_tdm_rx_2_mixer_controls,
19059 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
19060 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19061 sec_tdm_rx_3_mixer_controls,
19062 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
19063 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19064 sec_tdm_tx_0_mixer_controls,
19065 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
19066 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19067 tert_tdm_rx_0_mixer_controls,
19068 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
19069 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19070 tert_tdm_tx_0_mixer_controls,
19071 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
19072 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19073 tert_tdm_rx_1_mixer_controls,
19074 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19075 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19076 tert_tdm_rx_2_mixer_controls,
19077 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19078 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19079 tert_tdm_rx_3_mixer_controls,
19080 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19081 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19082 tert_tdm_rx_4_mixer_controls,
19083 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19084 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19085 quat_tdm_rx_0_mixer_controls,
19086 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19087 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19088 quat_tdm_tx_0_mixer_controls,
19089 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19090 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19091 quat_tdm_rx_1_mixer_controls,
19092 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19093 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19094 quat_tdm_rx_2_mixer_controls,
19095 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19096 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19097 quat_tdm_rx_3_mixer_controls,
19098 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019099 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19100 quin_tdm_rx_0_mixer_controls,
19101 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19102 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19103 quin_tdm_tx_0_mixer_controls,
19104 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19105 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19106 quin_tdm_rx_1_mixer_controls,
19107 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19108 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19109 quin_tdm_rx_2_mixer_controls,
19110 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19111 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19112 quin_tdm_rx_3_mixer_controls,
19113 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019114 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19115 wsa_cdc_dma_rx_0_mixer_controls,
19116 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19117 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19118 wsa_cdc_dma_rx_1_mixer_controls,
19119 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019120 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19121 rx_cdc_dma_rx_0_mixer_controls,
19122 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19123 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19124 rx_cdc_dma_rx_1_mixer_controls,
19125 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19126 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19127 rx_cdc_dma_rx_2_mixer_controls,
19128 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19129 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19130 rx_cdc_dma_rx_3_mixer_controls,
19131 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19132 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19133 rx_cdc_dma_rx_4_mixer_controls,
19134 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19135 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19136 rx_cdc_dma_rx_5_mixer_controls,
19137 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19138 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19139 rx_cdc_dma_rx_6_mixer_controls,
19140 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19141 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19142 rx_cdc_dma_rx_7_mixer_controls,
19143 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019144 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19145 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19146 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19147 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19148 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19149 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19150 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19151 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19152 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19153 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19154 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19155 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19156 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19157 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19158 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19159 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019160 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19161 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019162 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19163 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019164 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19165 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19166 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19167 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19168 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19169 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19170 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19171 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019172 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19173 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019174 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19175 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019176 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19177 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19178 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19179 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019180 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19181 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19182 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19183 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19184 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19185 tert_auxpcm_rx_mixer_controls,
19186 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19187 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19188 quat_auxpcm_rx_mixer_controls,
19189 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019190 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19191 quin_auxpcm_rx_mixer_controls,
19192 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019193 /* incall */
19194 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19195 incall_music_delivery_mixer_controls,
19196 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19197 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19198 incall_music2_delivery_mixer_controls,
19199 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19200 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19201 slimbus_4_rx_mixer_controls,
19202 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19203 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19204 slimbus_6_rx_mixer_controls,
19205 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19206 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19207 usb_audio_rx_mixer_controls,
19208 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19209 /* Voice Mixer */
19210 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19211 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19212 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19213 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19214 SND_SOC_NOPM, 0, 0,
19215 sec_i2s_rx_voice_mixer_controls,
19216 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19217 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19218 SND_SOC_NOPM, 0, 0,
19219 sec_mi2s_rx_voice_mixer_controls,
19220 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19221 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19222 SND_SOC_NOPM, 0, 0,
19223 slimbus_rx_voice_mixer_controls,
19224 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19225 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19226 SND_SOC_NOPM, 0, 0,
19227 bt_sco_rx_voice_mixer_controls,
19228 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19229 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19230 SND_SOC_NOPM, 0, 0,
19231 afe_pcm_rx_voice_mixer_controls,
19232 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19233 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19234 SND_SOC_NOPM, 0, 0,
19235 aux_pcm_rx_voice_mixer_controls,
19236 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19237 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19238 SND_SOC_NOPM, 0, 0,
19239 sec_aux_pcm_rx_voice_mixer_controls,
19240 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19241 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19242 SND_SOC_NOPM, 0, 0,
19243 tert_aux_pcm_rx_voice_mixer_controls,
19244 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19245 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19246 SND_SOC_NOPM, 0, 0,
19247 quat_aux_pcm_rx_voice_mixer_controls,
19248 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019249 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19250 SND_SOC_NOPM, 0, 0,
19251 quin_aux_pcm_rx_voice_mixer_controls,
19252 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019253 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19254 SND_SOC_NOPM, 0, 0,
19255 hdmi_rx_voice_mixer_controls,
19256 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19257 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19258 SND_SOC_NOPM, 0, 0,
19259 mi2s_rx_voice_mixer_controls,
19260 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19261 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19262 SND_SOC_NOPM, 0, 0,
19263 pri_mi2s_rx_voice_mixer_controls,
19264 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19265 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19266 SND_SOC_NOPM, 0, 0,
19267 int0_mi2s_rx_voice_mixer_controls,
19268 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19269 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19270 SND_SOC_NOPM, 0, 0,
19271 int4_mi2s_rx_voice_mixer_controls,
19272 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19273 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19274 SND_SOC_NOPM, 0, 0,
19275 tert_mi2s_rx_voice_mixer_controls,
19276 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19277 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19278 SND_SOC_NOPM, 0, 0,
19279 quat_mi2s_rx_voice_mixer_controls,
19280 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19281 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19282 SND_SOC_NOPM, 0, 0,
19283 quin_mi2s_rx_voice_mixer_controls,
19284 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19285 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19286 SND_SOC_NOPM, 0, 0,
19287 quat_tdm_rx_2_voice_mixer_controls,
19288 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019289 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19290 SND_SOC_NOPM, 0, 0,
19291 wsa_cdc_dma_rx_0_voice_mixer_controls,
19292 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19293 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19294 SND_SOC_NOPM, 0, 0,
19295 rx_cdc_dma_rx_0_voice_mixer_controls,
19296 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019297 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19298 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19299 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019300 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19301 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19302 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19303 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19304 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19305 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19306 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19307 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19308 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19309 int_bt_a2dp_rx_mixer_controls,
19310 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19311 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19312 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19313 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19314 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19315 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19316 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19317 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19318 tx_voice2_stub_mixer_controls,
19319 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19320 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19321 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19322 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19323 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19324 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19325 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19326 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19327 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19328 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19329 SND_SOC_NOPM, 0, 0,
19330 slimbus_6_rx_voice_mixer_controls,
19331 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19332 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19333 slimbus_7_rx_voice_mixer_controls,
19334 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19335 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19336 slimbus_8_rx_voice_mixer_controls,
19337 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19338 /* port mixer */
19339 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19340 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19341 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19342 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19343 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19344 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19345 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19346 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19347 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19348 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19349 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19350 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19351 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19352 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19353 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019354 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19355 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19356 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019357 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19358 sbus_1_rx_port_mixer_controls,
19359 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19360 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19361 bt_sco_rx_port_mixer_controls,
19362 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19363 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19364 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19365 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19366 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19367 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19368 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19369 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19370 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19371 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019372 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019373 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19374 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019375 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19376 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19377 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19378 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19379 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19380 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19381 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19382 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19383 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19384 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19385 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19386 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19387 primary_mi2s_rx_port_mixer_controls,
19388 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19389 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19390 sec_mi2s_rx_port_mixer_controls,
19391 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19392 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19393 tert_mi2s_rx_port_mixer_controls,
19394 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19395 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19396 quat_mi2s_rx_port_mixer_controls,
19397 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019398 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19399 quin_mi2s_rx_port_mixer_controls,
19400 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019401 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19402 pri_tdm_rx_0_port_mixer_controls,
19403 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19404 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19405 pri_tdm_rx_1_port_mixer_controls,
19406 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19407 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19408 pri_tdm_rx_2_port_mixer_controls,
19409 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19410 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19411 pri_tdm_rx_3_port_mixer_controls,
19412 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19413 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19414 sec_tdm_rx_0_port_mixer_controls,
19415 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19416 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19417 sec_tdm_rx_1_port_mixer_controls,
19418 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19419 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19420 sec_tdm_rx_2_port_mixer_controls,
19421 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19422 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19423 sec_tdm_rx_3_port_mixer_controls,
19424 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070019425 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
19426 sec_tdm_rx_7_port_mixer_controls,
19427 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019428 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19429 tert_tdm_rx_0_port_mixer_controls,
19430 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19431 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19432 tert_tdm_rx_1_port_mixer_controls,
19433 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19434 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19435 tert_tdm_rx_2_port_mixer_controls,
19436 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19437 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19438 tert_tdm_rx_3_port_mixer_controls,
19439 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19440 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19441 quat_tdm_rx_0_port_mixer_controls,
19442 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19443 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19444 quat_tdm_rx_1_port_mixer_controls,
19445 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19446 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19447 quat_tdm_rx_2_port_mixer_controls,
19448 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19449 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19450 quat_tdm_rx_3_port_mixer_controls,
19451 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019452 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19453 quin_tdm_rx_0_port_mixer_controls,
19454 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
19455 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19456 quin_tdm_rx_1_port_mixer_controls,
19457 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
19458 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19459 quin_tdm_rx_2_port_mixer_controls,
19460 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
19461 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19462 quin_tdm_rx_3_port_mixer_controls,
19463 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019464 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19465 int0_mi2s_rx_port_mixer_controls,
19466 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
19467 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19468 int4_mi2s_rx_port_mixer_controls,
19469 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019470 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19471 wsa_cdc_dma_rx_0_port_mixer_controls,
19472 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
19473 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19474 rx_cdc_dma_rx_0_port_mixer_controls,
19475 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019476 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
19477 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
19478 ARRAY_SIZE(tx_qchat_mixer_controls)),
19479 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
19480 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
19481 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
19482 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
19483 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
19484 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080019485 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
19486 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
19487 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019488 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
19489 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
19490 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019491 /* lsm mixer definitions */
19492 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
19493 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
19494 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
19495 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
19496 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
19497 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
19498 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
19499 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
19500 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
19501 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
19502 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
19503 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
19504 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
19505 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
19506 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
19507 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
19508 /* Virtual Pins to force backends ON atm */
19509 SND_SOC_DAPM_OUTPUT("BE_OUT"),
19510 SND_SOC_DAPM_INPUT("BE_IN"),
19511
19512 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19513 &slim0_rx_vi_fb_lch_mux),
19514 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19515 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019516 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19517 &wsa_rx_0_vi_fb_lch_mux),
19518 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19519 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019520 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
19521 &mi2s_rx_vi_fb_mux),
19522 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
19523 &int4_mi2s_rx_vi_fb_mono_ch_mux),
19524 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
19525 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
19526
19527 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
19528 &voc_ext_ec_mux),
19529 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
19530 &ext_ec_ref_mux_ul1),
19531 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
19532 &ext_ec_ref_mux_ul2),
19533 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
19534 &ext_ec_ref_mux_ul3),
19535 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
19536 &ext_ec_ref_mux_ul4),
19537 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
19538 &ext_ec_ref_mux_ul5),
19539 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
19540 &ext_ec_ref_mux_ul6),
19541 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
19542 &ext_ec_ref_mux_ul8),
19543 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
19544 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019545 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
19546 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019547 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
19548 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019549 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
19550 &ext_ec_ref_mux_ul17),
19551 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
19552 &ext_ec_ref_mux_ul18),
19553 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
19554 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080019555 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
19556 &ext_ec_ref_mux_ul28),
19557 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
19558 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019559};
19560
19561static const struct snd_soc_dapm_route intercon[] = {
19562 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19563 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19564 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19565 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19566 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19567 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19568 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19569 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19570 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19571 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19572 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19573 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19574 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19575 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19576 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19577 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019578 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019579 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
19580
19581 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19582 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19583 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19584 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19585 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19586 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19587 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19588 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19589 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19590 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19591 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19592 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19593 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19594 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19595 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19596 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019597 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019598 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
19599
19600 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19601 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19602 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19603 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19604 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19605 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19606 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19607 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19608 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19609 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19610 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19611 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19612 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19613 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19614 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19615 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019616 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019617 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
19618
19619 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19620 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19621 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19622 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19623 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19624 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19625 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19626 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19627 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19628 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19629 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19630 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19631 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19632 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19633 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19634 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019635 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019636 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
19637
19638 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19639 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19640 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19641 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19642 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19643 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19644 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19645 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19646 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19647 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19648 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19649 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19650 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19651 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19652 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19653 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019654 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019655 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
19656
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019657 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19658 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19659 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19660 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19661 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19662 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19663 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19664 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19665 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19666 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19667 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19668 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19669 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19670 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19671 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19672 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019673 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019674 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
19675
19676 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19677 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19678 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19679 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19680 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19681 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19682 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19683 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19684 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19685 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19686 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19687 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19688 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19689 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19690 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19691 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019692 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019693 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19694
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019695 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19696 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19697 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19698 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19699 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19700 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19701 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19702 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19703 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19704 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19705 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19706 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19707 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19708 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19709 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19710 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019711 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019712 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19713
19714 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19715 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19716 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19717 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19718 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19719 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19720 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19721 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19722 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19723 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19724 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19725 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19726 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19727 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19728 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19729 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019730 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019731 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19732
19733 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19734 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19735 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19736 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19737 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19738 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19739 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19740 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19741 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19742 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19743 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19744 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19745 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19746 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19747 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19748 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019749 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019750 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19751
19752 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19753 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19754 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19755 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19756 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19757 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19758 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19759 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19760 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19761 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19762 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19763 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19764 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19765 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19766 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19767 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019768 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019769 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19770
19771 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19772 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19773 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19774 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19775 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19776 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19777 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19778 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19779 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19780 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19781 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19782 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19783 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19784 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19785 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19786 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019787 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019788 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19789
19790 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19791 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
19792 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
19793 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
19794 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
19795 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
19796 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
19797 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
19798 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
19799 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
19800 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
19801 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
19802 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
19803 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
19804 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
19805 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019806 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019807 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
19808
19809 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
19810 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
19811 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
19812 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
19813 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
19814 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
19815 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
19816 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
19817 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
19818 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
19819 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
19820 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
19821 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
19822 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
19823 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
19824 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019825 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019826 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
19827
19828 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
19829 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
19830 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
19831 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
19832 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
19833 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
19834 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
19835 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
19836 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
19837 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
19838 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
19839 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
19840 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
19841 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
19842 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
19843 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019844 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019845 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
19846
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019847 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
19848 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
19849 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
19850 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
19851 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
19852 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
19853 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
19854 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
19855 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
19856 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
19857 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
19858 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
19859 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
19860 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
19861 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
19862 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019863 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019864 {"HDMI", NULL, "HDMI Mixer"},
19865
19866 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
19867 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
19868 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
19869 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
19870 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
19871 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
19872 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
19873 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
19874 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
19875 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
19876 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
19877 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
19878 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
19879 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
19880 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
19881 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019882 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019883 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
19884
Karthikeyan Mani57550082018-05-03 18:43:58 -070019885 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
19886 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
19887 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
19888 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
19889 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
19890 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
19891 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
19892 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
19893 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
19894 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
19895 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
19896 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
19897 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
19898 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
19899 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
19900 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019901 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070019902 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
19903
Ralf Herzc8701f72018-06-20 11:37:35 +020019904 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19905 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19906 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19907 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19908 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19909 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19910 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19911 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19912 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19913 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19914 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19915 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19916 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19917 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19918 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19919 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019920 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019921 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
19922
19923 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19924 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19925 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19926 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19927 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19928 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19929 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19930 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19931 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19932 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19933 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19934 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19935 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19936 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19937 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19938 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019939 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019940 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019941
19942 /* incall */
19943 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
19944 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
19945 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
19946 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
19947 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
19948 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19949 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19950 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19951 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19952 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
19953 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19954 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19955 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19956 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19957 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
19958
19959 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19960 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19961 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19962 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19963 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19964 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19965 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19966 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19967 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19968 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19969 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19970 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19971 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19972 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19973 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19974 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019975 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019976 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
19977
19978 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19979 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19980 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19981 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19982 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19983 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19984 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19985 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19986 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19987 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19988 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19989 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19990 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19991 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19992 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19993 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019994 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019995 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
19996
Surendar Karka3ef3d812018-09-28 18:52:35 +053019997 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19998 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19999 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20000 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20001 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20002 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20003 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20004 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20005 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20006 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20007 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20008 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20009 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20010 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20011 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20012 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20013 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
20014 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
20015
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020016 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20017 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20018 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20019 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20020 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20021 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20022 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20023 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20024 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20025 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20026 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20027 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20028 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20029 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20030 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20031 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020032 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020033 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
20034
20035 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20036 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20037 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20038 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20039 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20040 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20041 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
20042 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20043 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20044 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020045 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020046 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20047 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020048 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020049 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20050 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20051 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20052 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020053 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20054 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020055 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20056 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20057 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20058 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20059 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20060 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020061 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20062 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020063 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020064 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020065 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20066 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20067 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20068 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20069 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20070 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020071 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020072 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20073 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20074 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020075 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20076 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20077 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020078 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020079 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020080 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20081 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020082 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020083 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020084 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020085 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20086 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20087
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020088 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20089 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20090 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20091 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20092 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20093 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20094 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20095 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20096 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20097 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20098 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20099 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20100 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20101 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20102 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20103 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020104 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020105 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20106
20107 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20108 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20109 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20110 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20111 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20112 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20113 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20114 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20115 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20116 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20117 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20118 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20119 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20120 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20121 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020122 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020123 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20124
20125 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20126 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20127 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20128 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20129 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20130 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20131 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20132 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20133 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20134 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20135 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20136 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20137 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20138 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020139 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020140 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20141
20142 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20143 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20144 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20145 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20146 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20147 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20148 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20149 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20150 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20151 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20152 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20153 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20154 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20155 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020156 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020157 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20158
20159 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20160 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20161
20162 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20163 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20164
20165 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20166 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20167 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20168 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20169 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20170 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20171 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20172 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20173 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20174 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20175 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20176 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20177 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20178 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20179 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020180 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020181 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20182
20183 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20184 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20185 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20186 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20187 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20188 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20189 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20190 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20191 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20192 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20193 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20194 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20195 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20196 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20197 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20198 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20199
20200 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20201 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20202 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20203 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20204 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20205 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20206 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20207 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20208 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20209 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20210 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20211 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20212 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20213 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20214 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20215 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20216
20217 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20218 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20219 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20220 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20221 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20222 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20223 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20224 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20225 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20226 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20227 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20228 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20229 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20230 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20231 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20232 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20233 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20234 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20235
20236 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20237 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20238 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20239 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20240 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20241 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20242 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20243 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20244 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20245 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20246 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20247 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20248 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20249 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20250 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20251 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020252 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020253 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20254
20255 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20256 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20257 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20258 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20259 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20260 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20261 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20262 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20263 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20264 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20265 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20266 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20267 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20268 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20269 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20270 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020271 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020272 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20273
20274 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20275 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20276 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20277 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20278 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20279 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20280 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20281 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20282 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20283 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20284 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20285 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20286 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20287 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20288 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20289 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020290 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020291 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20292
20293 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20294 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20295 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20296 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20297 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20298 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20299 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20300 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20301 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20302 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20303 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20304 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20305 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20306 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20307 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20308 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020309 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020310 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20311
20312 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20313 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20314 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20315 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20316 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20317 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20318 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20319 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20320 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20321 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20322 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20323 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20324 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20325 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20326 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20327 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20328 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20329
20330 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20331 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20332 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20333 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20334 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20335 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20336 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20337 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20338 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20339 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20340 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20341 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20342 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20343 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20344 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20345 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020346 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020347 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20348
20349 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20350 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20351 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20352 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20353 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20354 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20355 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20356 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20357 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20358 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20359 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20360 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20361 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20362 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20363 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20364 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020365 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020366 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20367
20368 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20369 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20370 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20371 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20372 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20373 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20374 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20375 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20376 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20377 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20378 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20379 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20380 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20381 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20382 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20383 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020384 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020385 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20386
20387 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20388 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20389 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20390 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20391 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20392 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20393 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20394 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20395 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20396 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20397 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20398 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20399 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20400 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20401 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20402 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020403 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020404 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20405
20406 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20407 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20408 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20409 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20410 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20411 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20412 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20413 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20414 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20415 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20416 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20417 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20418 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20419 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20420 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20421 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20422 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20423
20424 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20425 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20426 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20427 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20428 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20429 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20430 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20431 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20432 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20433 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20434 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20435 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20436 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20437 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20438 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20439 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020440 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020441 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
20442
20443 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20444 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20445 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20446 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20447 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20448 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20449 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20450 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20451 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20452 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20453 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20454 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20455 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20456 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20457 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20458 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20459 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
20460
20461 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20462 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20463 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20464 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20465 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20466 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20467 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20468 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20469 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20470 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20471 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20472 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20473 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20474 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20475 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20476 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020477 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020478 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
20479
20480 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20481 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20482 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20483 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20484 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20485 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20486 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20487 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20488 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20489 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20490 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20491 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20492 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20493 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20494 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20495 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020496 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020497 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
20498
20499 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20500 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20501 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20502 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20503 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20504 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20505 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20506 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20507 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20508 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20509 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20510 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20511 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20512 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20513 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20514 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020515 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020516 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
20517
20518 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20519 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20520 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20521 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20522 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20523 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20524 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20525 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20526 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20527 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20528 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20529 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20530 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20531 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20532 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20533 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020534 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020535 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
20536
20537 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20538 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20539 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20540 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20541 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20542 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20543 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20544 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20545 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20546 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20547 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20548 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20549 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20550 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20551 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20552 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20553 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020554 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020555 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
20556
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020557 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20558 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20559 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20560 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20561 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20562 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20563 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20564 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20565 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20566 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20567 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20568 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20569 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20570 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20571 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20572 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20573 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
20574
20575 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20576 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20577 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20578 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20579 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20580 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20581 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20582 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20583 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20584 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20585 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20586 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20587 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20588 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20589 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20590 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20591 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020592 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020593 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
20594
20595 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20596 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20597 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20598 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20599 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20600 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20601 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20602 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20603 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20604 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20605 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20606 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20607 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20608 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20609 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20610 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20611 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020612 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020613 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
20614
20615 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20616 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20617 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20618 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20619 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20620 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20621 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20622 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20623 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20624 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20625 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20626 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20627 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20628 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20629 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20630 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20631 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020632 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020633 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
20634
Rohit Kumara5077932017-09-10 22:05:05 +053020635 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20636 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20637 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20638 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20639 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20640 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20641 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20642 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20643 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20644 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20645 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20646 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20647 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20648 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20649 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20650 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20651 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020652 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020653 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
20654
20655 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20656 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20657 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20658 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20659 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20660 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20661 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20662 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20663 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20664 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20665 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20666 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20667 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20668 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20669 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20670 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20671 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
20672
20673 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20674 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20675 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20676 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20677 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20678 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20679 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20680 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20681 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20682 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20683 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20684 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20685 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20686 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20687 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20688 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20689 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020690 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020691 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
20692
20693 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20694 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20695 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20696 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20697 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20698 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20699 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20700 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20701 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20702 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20703 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20704 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20705 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20706 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20707 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20708 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20709 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020710 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020711 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
20712
20713 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20714 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20715 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20716 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20717 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20718 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20719 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20720 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20721 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20722 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20723 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20724 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20725 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20726 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20727 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20728 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20729 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020730 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020731 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
20732
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020733 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
20734 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
20735 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
20736 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
20737 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020738 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020739 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020740 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20741 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20742 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20743 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20744 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20745 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20746 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20747 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20748 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20749 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20750 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20751 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20752 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20753 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20754 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020755 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020756 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20757 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20758 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020759 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020760 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20761 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020762 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20763 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20764 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020765 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020766 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20767 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20768 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020769 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020770 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020771 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20772 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20773 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020774 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20775 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20776 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20777 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20778 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20779 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20780 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20781 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20782 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20783 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20784 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020785 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020786 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20787 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20788 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020789 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020790 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020791 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20792 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20793 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020794 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020795 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020796 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20797 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20798 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20799 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20800 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020801 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20802 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20803 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20804 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020805 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020806
20807 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20808 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20809 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20810 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20811 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20812 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20813 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20814 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20815 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20816 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20817 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20818 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20819 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20820 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20821 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20822 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020823 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020824 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20825 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20826 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20827 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020828 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20829 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20830 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20831 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20832 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020833 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20834 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20835 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20836 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20837 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20838 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020839 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20840 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020841
20842 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20843 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20844 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20845 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20846 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20847 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20848 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20849 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20850 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20851 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20852 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20853 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20854 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20855 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20856 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20857 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020858 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020859 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20860 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20861 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20862 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020863 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20864 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20865 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20866 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20867 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020868 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20869 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20870 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20871 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20872 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20873 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020874 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20875 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020876
20877 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20878 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20879 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20880 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20881 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20882 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20883 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20884 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20885 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20886 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20887 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20888 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20889 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20890 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20891 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20892 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020893 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020894 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20895 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20896 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20897 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020898 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20899 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20900 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20901 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20902 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020903 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20904 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20905 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20906 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20907 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20908 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020909 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20910 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020911
20912 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20913 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20914 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20915 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20916 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20917 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20918 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20919 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20920 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20921 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20922 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20923 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20924 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20925 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20926 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20927 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020928 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020929 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20930 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20931 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20932 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020933 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20934 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20935 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20936 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20937 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020938 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20939 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20940 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20941 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20942 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20943 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020944 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20945 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020946
20947 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20948 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20949 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20950 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20951 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20952 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20953 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20954 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20955 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20956 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20957 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20958 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20959 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20960 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20961 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20962 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020963 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020964 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20965 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20966 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20967 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020968 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20969 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20970 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20971 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20972 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020973 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20974 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20975 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20976 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20977 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20978 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020979 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20980 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020981
20982 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20983 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20984 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20985 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20986 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20987 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20988 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20989 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20990 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20991 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20992 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20993 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20994 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20995 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20996 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20997 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020998 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020999 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21000 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21001 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21002 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021003 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21004 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21005 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21006 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21007 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021008 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21009 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21010 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21011 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21012 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21013 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021014 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21015 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021016
21017 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21018 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21019 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21020 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21021 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21022 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21023 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21024 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21025 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21026 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21027 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21028 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21029 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21030 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21031 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21032 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021033 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021034 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21035 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21036 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21037 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021038 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21039 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21040 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21041 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21042 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021043 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21044 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21045 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21046 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21047 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21048 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021049 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21050 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021051
21052 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21053 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21054 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21055 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21056 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21057 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21058 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21059 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021060 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21061 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21062 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21063 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021064 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21065 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21066 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21067 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21068 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021069 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21070 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21071 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21072 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21073 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21074 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021075 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21076 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021077 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021078
Laxminath Kasam38070be2017-08-17 18:21:59 +053021079 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21080 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21081 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21082 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21083 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21084 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21085 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21086 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021087 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21088 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21089 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21090 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21091 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21092 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021093 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021094
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021095 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21096 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21097 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21098 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021099 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021100 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21101 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21102 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21103 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21104 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21105 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21106 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21107 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21108 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21109 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21110 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21111 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21112 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21113 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21114 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21115 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021116 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21117 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21118 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21119 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021120 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21121 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21122 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21123 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21124 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021125 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21126 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21127 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21128 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21129 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21130 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021131 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21132 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021133 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021134
Derek Chen07c6d1c2018-07-05 10:39:25 -070021135 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21136 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21137 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21138 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21139 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21140 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21141 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21142 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21143 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21144 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21145 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21146 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21147 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21148 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21149 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21150 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21151 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21152 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21153 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21154 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21155 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21156 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021157 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21158 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21159 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21160 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21161 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
21162 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21163 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21164 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21165 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21166 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21167 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21168 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21169 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021170 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021171
Surendar Karkac1cde372018-08-14 18:56:24 +053021172 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21173 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21174 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021175 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021176 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21177 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21178 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21179 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21180 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21181 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21182 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021183 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021184
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021185 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21186 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21187 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21188 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21189 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21190 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021191 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021192
Asish Bhattacharya34504582017-08-08 12:55:01 +053021193 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21194 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21195 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21196 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21197 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21198 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21199 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21200 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21201 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21202 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21203 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21204 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21205 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21206 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21207 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21208 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21209 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021210 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21211 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21212 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21213 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21214 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021215 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21216 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21217 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21218 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21219 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21220 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021221 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21222 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021223 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021224
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021225 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21226 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21227 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21228 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21229 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21230 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021231 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021232
21233 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21234 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21235 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21236 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21237 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21238 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021239 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021240
21241 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21242 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21243 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21244 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21245 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21246 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021247 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021248
21249 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21250 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21251 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21252 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21253 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21254 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021255 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021256
21257 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21258 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21259 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21260 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21261 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21262 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021263 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021264
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021265 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21266 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21267 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21268 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21269 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21270 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21271 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21272 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21273 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21274 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21275 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21276 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21277 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21278 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21279 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21280 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21281 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21282 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21283
21284 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21285 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21286 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21287 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21288 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21289 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21290 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21291 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21292 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21293 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21294 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21295 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21296 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21297 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21298 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21299 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21300 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21301 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21302
21303 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21304 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21305 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21306 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21307 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21308 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21309 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21310 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21311 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21312 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21313 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21314 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21315 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21316 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21317 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21318 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21319 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21320
21321 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21322 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21323 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21324 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21325 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21326 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21327 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21328 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21329 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21330 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21331 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21332 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21333 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21334 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21335 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21336 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21337 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21338
21339 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21340 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21341 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021342 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021343 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21344 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21345 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021346 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21347 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021348 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21349 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021350 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021351 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21352 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021353 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021354 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21355 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21356 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021357 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21358 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021359 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21360 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21361 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21362
21363 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21364 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21365 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021366 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021367 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21368 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21369 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021370 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21371 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021372 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21373 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021374 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021375 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21376 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21377 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21378 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21379 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21380 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21381 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21382 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21383 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021384 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021385 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021386 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21387 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21388 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21389 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021390 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021391 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021392 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21393 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021394
21395 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21396 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21397 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21398 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21399 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21400 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21401 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21402 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21403 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21404 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21405 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21406 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21407 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21408 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21409 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21410 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021411 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021412 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21413
21414 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21415 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21416 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21417 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21418 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21419 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21420 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21421 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21422 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21423 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21424 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21425 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21426 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21427 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21428 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21429 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021430 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021431 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
21432
21433 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21434 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21435 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21436 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21437 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21438 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21439 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21440 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21441 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21442 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21443 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21444 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21445 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21446 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21447 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21448 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21449 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
21450
21451 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21452 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21453 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21454 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21455 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21456 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21457 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21458 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21459 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21460 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21461 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21462 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21463 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21464 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21465 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21466 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21467 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
21468
Rohit Kumara5077932017-09-10 22:05:05 +053021469 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21470 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21471 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21472 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21473 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21474 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21475 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21476 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21477 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21478 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21479 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21480 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21481 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21482 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21483 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21484 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21485 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
21486
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021487 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21488 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21489 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21490 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21491 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21492 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
21493
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021494 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
21495 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21496 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21497 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
21498
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021499 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21500 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21501 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21502 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21503 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21504 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
21505
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021506 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
21507 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021508 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21509 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21510 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21511 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
21512
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021513 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
21514 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021515 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21516 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21517 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21518 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
21519
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021520 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21521 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021522 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21523 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21524 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21525 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
21526
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021527 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
21528 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021529 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21530 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21531 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21532 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
21533
Karthikeyan Mani57550082018-05-03 18:43:58 -070021534 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
21535 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21536 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
21537 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21538 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21539 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
21540
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021541 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21542 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21543 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21544 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21545 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021546 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
21547
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021548 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21549 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21550 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21551 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21552 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21553 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
21554
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021555 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21556 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021557 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21558 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21559 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21560 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
21561
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021562 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21563 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021564 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21565 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21566 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21567 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
21568
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021569 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21570 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021571 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21572 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21573 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21574 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
21575
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021576 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21577 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021578 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21579 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21580 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21581 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
21582
Rohit Kumara5077932017-09-10 22:05:05 +053021583 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21584 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021585 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21586 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21587 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21588 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
21589
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021590 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21591 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21592 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21593 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21594 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21595 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
21596 {"HDMI", NULL, "HDMI_DL_HL"},
21597
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021598 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021599 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21600 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21601 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080021602 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021603 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
21604
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021605 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021606 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21607 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21608 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21609 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21610 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
21611
21612 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21613 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21614 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21615 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21616 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21617 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
21618
21619 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21620 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21621 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21622 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21623 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21624 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
21625
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021626 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021627 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21628 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21629 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21630 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21631 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
21632
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021633 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021634 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21635 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21636 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21637 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
21638
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021639 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021640 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21641 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21642 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21643 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
21644
21645 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21646 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
21647
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021648 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21649 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21650 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
21651
21652 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21653 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21654 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
21655
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021656 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21657 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21658 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21659 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021660 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021661 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070021662 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021663 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021664 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
21665 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
21666
21667 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21668 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21669 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21670 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21671 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21672 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21673 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21674 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21675 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21676 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021677 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21678 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021679
21680 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21681 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21682 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21683 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21684
21685 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21686 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21687 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21688 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21689
21690 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21691 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21692 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21693 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21694
21695 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21696 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21697 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21698 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21699
21700 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21701 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21702 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21703 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21704
21705 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21706 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21707 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21708 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21709
21710 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21711 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21712 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21713 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21714
Laxminath Kasam38070be2017-08-17 18:21:59 +053021715 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21716 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21717 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21718 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21719 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21720 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21721 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21722 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21723 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21724 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021725 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21726 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070021727
21728 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21729 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21730 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21731 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21732
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021733 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21734 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21735 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21736 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21737
21738 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21739 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21740 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21741 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21742
21743 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21744 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21745 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21746 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21747
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021748 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21749 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21750 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21751 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21752
21753 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21754 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21755 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21756 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080021757
21758 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21759 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21760 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21761 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21762 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21763 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21764 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21765 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21766
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021767 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
21768 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
21769 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
21770 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
21771 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
21772 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
21773 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
21774 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021775 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021776 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021777 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
21778 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
21779 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021780 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
21781 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021782
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021783 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
21784 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
21785 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
21786 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
21787 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
21788 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
21789 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
21790 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
21791 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
21792 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
21793 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
21794 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
21795 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
21796 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
21797 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021798 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021799 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021800 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
21801 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
21802 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
21803 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
21804 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
21805 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021806 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
21807
21808 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
21809 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
21810 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
21811 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
21812 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
21813 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
21814 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
21815 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
21816 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
21817 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
21818 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
21819 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
21820 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
21821 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
21822 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021823 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021824 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
21825 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
21826 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
21827 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
21828 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
21829 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021830 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
21831
21832 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
21833 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
21834 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
21835 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
21836 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
21837 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
21838 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
21839 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
21840 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
21841 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
21842 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
21843 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
21844 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
21845 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021846 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021847 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
21848 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
21849
21850 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
21851 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
21852 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
21853 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
21854 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
21855 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
21856 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
21857 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
21858 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
21859 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
21860 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
21861 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
21862 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
21863 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
21864 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021865 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21866 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
21867 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021868 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21869 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
21870 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021871 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21872 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21873 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21874 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21875 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21876 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21877 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21878 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021879 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21880 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021881 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021882 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021883 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
21884
21885 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21886 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21887 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21888 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21889 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21890 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21891 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21892 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021893 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21894 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021895 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021896 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021897 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
21898
21899
21900 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21901 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21902 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21903 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21904 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21905 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21906 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21907 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021908 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21909 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021910 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021911 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021912 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
21913
21914
21915 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21916 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21917 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21918 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21919 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21920 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21921 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21922 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021923 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21924 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021925 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021926 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021927 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
21928
21929 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21930 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21931 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21932 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21933 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21934 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21935 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21936 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021937 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21938 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021939 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021940 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021941 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
21942
21943 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21944 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21945 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21946 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21947 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21948 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021949 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21950 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021951 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021952 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021953 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
21954
21955 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21956 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21957 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21958 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21959 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21960 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021961 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21962 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021963 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021964 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021965 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
21966
21967 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21968 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21969 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21970 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21971 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21972 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021973 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21974 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021975 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021976 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021977 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
21978
21979
21980 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
21981 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
21982 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
21983 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
21984 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
21985 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
21986 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
21987 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
21988 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
21989 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
21990 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021991 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021992 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
21993 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
21994 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
21995 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
21996 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
21997 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
21998
21999 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
22000 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
22001 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
22002 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
22003 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
22004 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
22005 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
22006 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
22007 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
22008 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
22009 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
22010 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080022011 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
22012 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022013 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022014 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022015 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022016 {"MI2S_RX", NULL, "MI2S_DL_HL"},
22017 {"MI2S_UL_HL", NULL, "MI2S_TX"},
22018 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
22019 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
22020
22021 /* connect to INT4_MI2S_DL_HL since same pcm_id */
22022 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22023 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
22024 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22025 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
22026 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
22027 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
22028 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
22029 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
22030 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
22031 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
22032
22033 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
22034 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022035 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
22036 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022037 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22038 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
22039 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22040 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
22041 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
22042 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
22043 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
22044 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
22045 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
22046 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
22047
22048 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
22049 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
22050 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
22051 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
22052 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
22053 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
22054 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
22055 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
22056 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
22057 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
22058 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
22059 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
22060 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
22061 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
22062 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
22063 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022064 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022065 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
22066 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
22067 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
22068 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022069 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022070 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
22071 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
22072 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
22073 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
22074 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
22075 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
22076 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
22077 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
22078 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
22079 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
22080 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
22081 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022082 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
22083 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
22084 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
22085 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
22086 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
22087 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
22088 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
22089 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022090
22091 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22092 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22093 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22094 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22095 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22096 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22097 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22098 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22099 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22100 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22101 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22102 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22103 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22104 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22105 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22106 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022107 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22108 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22109 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22110 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022111 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
22112
22113 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22114 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22115 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22116 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22117 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22118 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22119 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22120 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22121 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22122 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22123 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22124 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22125 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22126 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22127 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22128 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022129 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22130 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22131 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22132 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022133 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
22134
22135 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22136 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22137 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22138 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22139 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22140 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22141 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22142 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22143 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22144 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22145 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22146 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22147 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22148 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22149 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22150 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022151 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22152 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22153 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22154 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022155 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22156
22157 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22158 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22159 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22160 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22161 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22162 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22163 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22164 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22165 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22166 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22167 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22168 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22169 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22170 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22171 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22172 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022173 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22174 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22175 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22176 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022177 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22178
22179 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22180 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22181 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22182 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22183 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22184 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22185 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22186 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22187 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22188 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22189 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22190 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22191 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22192 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22193 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22194 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022195 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22196 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22197 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22198 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022199 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22200
22201 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22202 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22203 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22204 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22205 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22206 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22207 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22208 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22209 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22210 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22211 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22212 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22213 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22214 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22215 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22216 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022217 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22218 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22219 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22220 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022221 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22222
22223 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22224 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22225 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22226 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22227 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22228 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22229 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22230 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22231 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22232 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22233 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22234 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22235 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22236 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22237 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22238 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022239 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22240 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22241 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22242 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022243 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22244
22245 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22246 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22247 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22248 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22249 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22250 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22251 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22252 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22253 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22254 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22255 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22256 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22257 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22258 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22259 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22260 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022261 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22262 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22263 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22264 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022265 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22266
Derek Chenfdcc0982018-10-02 15:14:03 -070022267 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
22268 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
22269
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022270 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22271 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22272 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22273 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22274 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22275 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22276 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22277 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22278 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22279 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22280 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22281 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22282 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22283 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22284 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22285 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022286 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22287 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22288 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22289 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022290 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22291
22292 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22293 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22294 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22295 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22296 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22297 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22298 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22299 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22300 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22301 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22302 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22303 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22304 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22305 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22306 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22307 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022308 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22309 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22310 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22311 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022312 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22313
22314 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22315 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22316 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22317 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22318 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22319 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22320 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22321 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22322 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22323 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22324 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22325 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22326 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22327 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22328 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22329 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022330 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22331 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22332 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22333 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022334 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22335
22336 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22337 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22338 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22339 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22340 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22341 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22342 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22343 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22344 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22345 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22346 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22347 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22348 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22349 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22350 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22351 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022352 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22353 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22354 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22355 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022356 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22357
22358 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22359 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22360 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22361 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22362 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22363 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22364 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22365 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22366 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22367 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22368 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22369 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22370 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22371 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22372 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22373 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022374 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22375 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22376 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22377 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022378 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22379
22380 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22381 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22382 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22383 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22384 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22385 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22386 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22387 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22388 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22389 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22390 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22391 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22392 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22393 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22394 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22395 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022396 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22397 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22398 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22399 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022400 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22401
22402 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22403 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22404 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22405 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22406 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22407 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22408 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22409 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22410 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22411 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22412 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22413 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22414 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22415 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22416 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22417 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022418 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22419 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22420 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22421 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022422 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
22423
22424 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22425 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22426 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22427 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22428 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22429 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22430 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22431 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22432 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22433 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22434 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22435 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22436 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22437 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22438 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22439 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022440 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22441 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22442 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22443 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022444 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
22445
Rohit Kumara5077932017-09-10 22:05:05 +053022446 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22447 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22448 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22449 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22450 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22451 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22452 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22453 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22454 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22455 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22456 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22457 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22458 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22459 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22460 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22461 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22462 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22463 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22464 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22465 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022466 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022467
22468 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22469 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22470 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22471 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22472 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22473 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22474 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22475 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22476 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22477 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22478 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22479 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22480 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22481 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22482 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22483 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22484 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22485 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22486 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22487 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022488 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022489
22490 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22491 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22492 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22493 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22494 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22495 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22496 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22497 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22498 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22499 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22500 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22501 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22502 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22503 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22504 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22505 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22506 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22507 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22508 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22509 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022510 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022511
22512 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22513 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22514 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22515 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22516 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22517 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22518 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22519 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22520 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22521 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22522 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22523 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22524 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22525 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22526 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22527 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22528 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22529 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22530 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22531 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022532 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022533
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022534 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22535 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22536 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22537 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022538 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022539 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22540 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22541 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22542 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022543 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022544 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22545 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
22546
22547 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22548 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22549 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22550 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022551 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022552 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22553 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22554 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022555 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022556 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22557 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22558 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
22559
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022560 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22561 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22562 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080022563 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22564 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22565
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022566
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022567 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22568 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22569 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22570 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22571 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022572 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022573 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22574 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22575 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22576 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022577 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022578 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22579 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22580 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22581 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22582 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022583 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022584 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22585 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
22586 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22587 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22588 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
22589 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22590 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
22591 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
22592 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
22593 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
22594
22595
22596 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22597 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22598 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22599 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22600 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022601 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022602 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
22603
22604 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22605 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22606 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022607 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022608 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
22609
22610 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22611 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22612 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22613 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
22614
22615 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22616 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
22617 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22618 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
22619
Rohit Kumara5077932017-09-10 22:05:05 +053022620 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22621 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
22622 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22623 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
22624
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022625 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22626 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22627 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22628 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22629 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22630 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22631 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22632 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022633 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022634 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
22635 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22636 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22637 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22638 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22639 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22640 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22641 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22642 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22643 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22644 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
22645
22646 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22647 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22648 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22649 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22650 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22651 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22652 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22653 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22654 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22655 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22656 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22657 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
22658
22659 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22660 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22661 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22662 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22663 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22664 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22665 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22666 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22667 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22668 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22669 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22670 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
22671
kunleizdf5a00a2017-11-27 15:27:36 +080022672 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22673 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022674 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022675
22676 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22677 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022678 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022679
22680 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22681 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022682 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
22683
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022684 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
22685 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022686 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22687 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22688 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22689 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
22690
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022691 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
22692 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022693 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22694 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22695 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22696 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
22697
22698 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22699 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22700 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22701 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
22702 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22703 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22704 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
22705 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
22706 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22707 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
22708 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
22709 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
22710 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
22711
22712 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22713 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22714 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22715 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22716 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022717 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022718 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22719 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22720 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22721 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22722 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22723 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22724 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22725 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
22726
22727 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22728 {"HDMI", NULL, "HDMI_RX Port Mixer"},
22729
22730 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22731 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
22732
Karthikeyan Mani57550082018-05-03 18:43:58 -070022733 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
22734 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
22735
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022736 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22737 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
22738
22739 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22740 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22741 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
22742
22743 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22744 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22745 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22746 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022747 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022748 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22749 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22750 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22751 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022752 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022753 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
22754
22755 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22756 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22757 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22758 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022759 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022760 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22761 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22762 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022763 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022764 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
22765
22766 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22767 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22768 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22769 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022770 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022771 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22772 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22773 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
22774
22775 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22776 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22777 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22778 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022779 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022780 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22781 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22782 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22783 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22784 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
22785
Rohit Kumara5077932017-09-10 22:05:05 +053022786 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22787 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22788 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22789 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22790 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
22791 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22792 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22793 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
22794
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022795 /* Backend Enablement */
22796
22797 {"BE_OUT", NULL, "PRI_I2S_RX"},
22798 {"BE_OUT", NULL, "SEC_I2S_RX"},
22799 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
22800 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
22801 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
22802 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22803 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
22804 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
22805 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
22806 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
22807 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022808 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022809 {"BE_OUT", NULL, "USB_AUDIO_RX"},
22810 {"BE_OUT", NULL, "HDMI"},
22811 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070022812 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022813 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
22814 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022815 {"BE_OUT", NULL, "MI2S_RX"},
22816 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
22817 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
22818 {"BE_OUT", NULL, "TERT_MI2S_RX"},
22819 {"BE_OUT", NULL, "SEC_MI2S_RX"},
22820 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
22821 {"BE_OUT", NULL, "PRI_MI2S_RX"},
22822 {"BE_OUT", NULL, "INT0_MI2S_RX"},
22823 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022824 {"BE_OUT", NULL, "INT2_MI2S_RX"},
22825 {"BE_OUT", NULL, "INT3_MI2S_RX"},
22826 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022827 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22828 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
22829 {"BE_OUT", NULL, "INT_FM_RX"},
22830 {"BE_OUT", NULL, "PCM_RX"},
22831 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22832 {"BE_OUT", NULL, "AUX_PCM_RX"},
22833 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
22834 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
22835 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022836 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022837 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22838 {"BE_OUT", NULL, "INT_FM_RX"},
22839 {"BE_OUT", NULL, "PCM_RX"},
22840 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22841 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
22842 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
22843 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
22844 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
22845 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
22846 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
22847 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
22848 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
22849 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
22850 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022851 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022852 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
22853 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
22854 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
22855 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
22856 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
22857 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
22858 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
22859 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
22860 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022861 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
22862 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
22863 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
22864 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022865 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
22866 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022867 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
22868 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
22869 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
22870 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
22871 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
22872 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
22873 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
22874 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022875
22876 {"PRI_I2S_TX", NULL, "BE_IN"},
22877 {"MI2S_TX", NULL, "BE_IN"},
22878 {"QUAT_MI2S_TX", NULL, "BE_IN"},
22879 {"QUIN_MI2S_TX", NULL, "BE_IN"},
22880 {"PRI_MI2S_TX", NULL, "BE_IN"},
22881 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022882 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022883 {"INT2_MI2S_TX", NULL, "BE_IN"},
22884 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022885 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022886 {"INT5_MI2S_TX", NULL, "BE_IN"},
22887 {"SEC_MI2S_TX", NULL, "BE_IN"},
22888 {"SENARY_MI2S_TX", NULL, "BE_IN" },
22889 {"SLIMBUS_0_TX", NULL, "BE_IN" },
22890 {"SLIMBUS_1_TX", NULL, "BE_IN" },
22891 {"SLIMBUS_3_TX", NULL, "BE_IN" },
22892 {"SLIMBUS_4_TX", NULL, "BE_IN" },
22893 {"SLIMBUS_5_TX", NULL, "BE_IN" },
22894 {"SLIMBUS_6_TX", NULL, "BE_IN" },
22895 {"SLIMBUS_7_TX", NULL, "BE_IN" },
22896 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053022897 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022898 {"USB_AUDIO_TX", NULL, "BE_IN" },
22899 {"INT_BT_SCO_TX", NULL, "BE_IN"},
22900 {"INT_FM_TX", NULL, "BE_IN"},
22901 {"PCM_TX", NULL, "BE_IN"},
22902 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22903 {"BE_OUT", NULL, "STUB_RX"},
22904 {"STUB_TX", NULL, "BE_IN"},
22905 {"STUB_1_TX", NULL, "BE_IN"},
22906 {"BE_OUT", NULL, "AUX_PCM_RX"},
22907 {"AUX_PCM_TX", NULL, "BE_IN"},
22908 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
22909 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
22910 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022911 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022912 {"INCALL_RECORD_TX", NULL, "BE_IN"},
22913 {"INCALL_RECORD_RX", NULL, "BE_IN"},
22914 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
22915 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022916 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22917 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022918 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
22919 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22920 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22921 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
22922 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022923 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
22924 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022925 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
22926 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
22927 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
22928 {"PRI_TDM_TX_0", NULL, "BE_IN"},
22929 {"PRI_TDM_TX_1", NULL, "BE_IN"},
22930 {"PRI_TDM_TX_2", NULL, "BE_IN"},
22931 {"PRI_TDM_TX_3", NULL, "BE_IN"},
22932 {"SEC_TDM_TX_0", NULL, "BE_IN"},
22933 {"SEC_TDM_TX_1", NULL, "BE_IN"},
22934 {"SEC_TDM_TX_2", NULL, "BE_IN"},
22935 {"SEC_TDM_TX_3", NULL, "BE_IN"},
22936 {"TERT_TDM_TX_0", NULL, "BE_IN"},
22937 {"TERT_TDM_TX_1", NULL, "BE_IN"},
22938 {"TERT_TDM_TX_2", NULL, "BE_IN"},
22939 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022940 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022941 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
22942 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
22943 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
22944 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022945 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022946 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
22947 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
22948 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
22949 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022950 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
22951 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
22952 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
22953 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
22954 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022955 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
22956 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
22957 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
22958 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
22959 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
22960 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022961 {"PRI_SPDIF_TX", NULL, "BE_IN"},
22962 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022963};
22964
22965static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
22966 struct snd_pcm_hw_params *params)
22967{
22968 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22969 unsigned int be_id = rtd->dai_link->id;
22970
22971 if (be_id >= MSM_BACKEND_DAI_MAX) {
22972 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22973 return -EINVAL;
22974 }
22975
22976 mutex_lock(&routing_lock);
22977 msm_bedais[be_id].sample_rate = params_rate(params);
22978 msm_bedais[be_id].channel = params_channels(params);
22979 msm_bedais[be_id].format = params_format(params);
22980 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
22981 __func__, msm_bedais[be_id].sample_rate,
22982 msm_bedais[be_id].format, be_id);
22983 mutex_unlock(&routing_lock);
22984 return 0;
22985}
22986
22987static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
22988{
22989 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22990 unsigned int be_id = rtd->dai_link->id;
22991 int i, session_type, path_type, topology;
22992 struct msm_pcm_routing_bdai_data *bedai;
22993 struct msm_pcm_routing_fdai_data *fdai;
22994
22995 pr_debug("%s: substream->pcm->id:%s\n",
22996 __func__, substream->pcm->id);
22997
22998 if (be_id >= MSM_BACKEND_DAI_MAX) {
22999 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23000 return -EINVAL;
23001 }
23002
23003 bedai = &msm_bedais[be_id];
23004 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
23005 0 : 1);
23006 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23007 path_type = ADM_PATH_PLAYBACK;
23008 else
23009 path_type = ADM_PATH_LIVE_REC;
23010
23011 mutex_lock(&routing_lock);
23012 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23013 if (!is_mm_lsm_fe_id(i))
23014 continue;
23015 fdai = &fe_dai_map[i][session_type];
23016 if (fdai->strm_id != INVALID_SESSION) {
23017 int idx;
23018 int port_id;
23019 unsigned long copp =
23020 session_copp_map[i][session_type][be_id];
23021 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
23022 if (test_bit(idx, &copp))
23023 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070023024
23025 if (idx >= MAX_COPPS_PER_PORT) {
23026 pr_debug("%s: copp idx is invalid, exiting\n",
23027 __func__);
23028 continue;
23029 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023030 fdai->be_srate = bedai->sample_rate;
23031 port_id = bedai->port_id;
23032 topology = adm_get_topology_for_port_copp_idx(port_id,
23033 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023034 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023035 adm_close(bedai->port_id, fdai->perf_mode, idx);
23036 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
23037 __func__, copp, i, session_type, be_id,
23038 topology);
23039 clear_bit(idx,
23040 &session_copp_map[i][session_type][be_id]);
23041 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023042 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023043 msm_pcm_routing_deinit_pp(bedai->port_id,
23044 topology);
23045 }
23046 }
23047
23048 bedai->active = 0;
23049 bedai->sample_rate = 0;
23050 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023051 mutex_unlock(&routing_lock);
23052
23053 return 0;
23054}
23055
23056static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
23057{
23058 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23059 unsigned int be_id = rtd->dai_link->id;
23060 int i, path_type, topology;
23061 int session_type = INVALID_SESSION;
23062 struct msm_pcm_routing_bdai_data *bedai;
23063 u32 channels, sample_rate;
23064 uint16_t bits_per_sample = 16, voc_path_type;
23065 struct msm_pcm_routing_fdai_data *fdai;
23066 u32 session_id;
23067 struct media_format_info voc_be_media_format;
23068 bool is_lsm;
23069
23070 pr_debug("%s: substream->pcm->id:%s\n",
23071 __func__, substream->pcm->id);
23072
23073 if (be_id >= MSM_BACKEND_DAI_MAX) {
23074 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23075 return -EINVAL;
23076 }
23077
23078 bedai = &msm_bedais[be_id];
23079
23080 mutex_lock(&routing_lock);
23081 if (bedai->active == 1)
23082 goto done; /* Ignore prepare if back-end already active */
23083
23084 /* AFE port is not active at this point. However, still
23085 * go ahead setting active flag under the notion that
23086 * QDSP6 is able to handle ADM starting before AFE port
23087 * is started.
23088 */
23089 bedai->active = 1;
23090
23091 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23092 if (!(is_mm_lsm_fe_id(i) &&
23093 route_check_fe_id_adm_support(i)))
23094 continue;
23095
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023096 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
23097 SESSION_TYPE_RX : SESSION_TYPE_TX;
23098 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023099 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023100 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023101 path_type = ADM_PATH_COMPRESSED_RX;
23102 else
23103 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023104 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023105 if ((fdai->passthr_mode != LEGACY_PCM) &&
23106 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020023107 path_type = ADM_PATH_COMPRESSED_TX;
23108 else
23109 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023110 }
23111
23112 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
23113 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023114 if (fdai->strm_id != INVALID_SESSION) {
23115 int app_type, app_type_idx, copp_idx, acdb_dev_id;
23116
23117 if (session_type == SESSION_TYPE_TX &&
23118 fdai->be_srate &&
23119 (fdai->be_srate != bedai->sample_rate)) {
23120 pr_debug("%s: flush strm %d diff BE rates\n",
23121 __func__,
23122 fdai->strm_id);
23123
23124 if (fdai->event_info.event_func)
23125 fdai->event_info.event_func(
23126 MSM_PCM_RT_EVT_BUF_RECFG,
23127 fdai->event_info.priv_data);
23128 fdai->be_srate = 0; /* might not need it */
23129 }
23130 bits_per_sample = msm_routing_get_bit_width(
23131 bedai->format);
23132
23133 app_type =
23134 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
23135 if (app_type && is_lsm) {
23136 app_type_idx =
23137 msm_pcm_routing_get_lsm_app_type_idx(app_type);
23138 sample_rate =
23139 fe_dai_app_type_cfg[i][session_type][be_id]
23140 .sample_rate;
23141 bits_per_sample =
23142 lsm_app_type_cfg[app_type_idx].bit_width;
23143 } else if (app_type) {
23144 app_type_idx =
23145 msm_pcm_routing_get_app_type_idx(app_type);
23146 sample_rate =
23147 fe_dai_app_type_cfg[i][session_type]
23148 [be_id].sample_rate;
23149 bits_per_sample =
23150 app_type_cfg[app_type_idx].bit_width;
23151 } else
23152 sample_rate = bedai->sample_rate;
23153 /*
23154 * check if ADM needs to be configured with different
23155 * channel mapping than backend
23156 */
23157 if (!bedai->adm_override_ch)
23158 channels = bedai->channel;
23159 else
23160 channels = bedai->adm_override_ch;
23161 acdb_dev_id =
23162 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23163 topology = msm_routing_get_adm_topology(i, session_type,
23164 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023165
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023166 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23167 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23168 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023169 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23170
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023171 copp_idx = adm_open(bedai->port_id, path_type,
23172 sample_rate, channels, topology,
23173 fdai->perf_mode, bits_per_sample,
23174 app_type, acdb_dev_id);
23175 if ((copp_idx < 0) ||
23176 (copp_idx >= MAX_COPPS_PER_PORT)) {
23177 pr_err("%s: adm open failed\n", __func__);
23178 mutex_unlock(&routing_lock);
23179 return -EINVAL;
23180 }
23181 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23182 __func__, i, session_type, be_id);
23183 set_bit(copp_idx,
23184 &session_copp_map[i][session_type][be_id]);
23185
23186 if (msm_is_resample_needed(
23187 sample_rate,
23188 bedai->sample_rate))
23189 adm_copp_mfc_cfg(
23190 bedai->port_id, copp_idx,
23191 bedai->sample_rate);
23192
23193 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023194 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023195 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023196 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023197 msm_pcm_routing_cfg_pp(bedai->port_id, copp_idx,
23198 topology, channels);
23199 }
23200 }
23201
23202 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23203 session_id = msm_pcm_routing_get_voc_sessionid(i);
23204 if (session_id) {
23205 pr_debug("%s voice session_id: 0x%x\n", __func__,
23206 session_id);
23207
23208 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23209 voc_path_type = RX_PATH;
23210 else
23211 voc_path_type = TX_PATH;
23212
23213 voc_set_route_flag(session_id, voc_path_type, 1);
23214
23215 memset(&voc_be_media_format, 0,
23216 sizeof(struct media_format_info));
23217
23218 voc_be_media_format.port_id = bedai->port_id;
23219 voc_be_media_format.num_channels = bedai->channel;
23220 voc_be_media_format.sample_rate = bedai->sample_rate;
23221 voc_be_media_format.bits_per_sample = bedai->format;
23222 /* Defaulting this to 1 for voice call usecases */
23223 voc_be_media_format.channel_mapping[0] = 1;
23224
23225 voc_set_device_config(session_id, voc_path_type,
23226 &voc_be_media_format);
23227
23228 if (voc_get_route_flag(session_id, RX_PATH) &&
23229 voc_get_route_flag(session_id, TX_PATH))
23230 voc_enable_device(session_id);
23231 }
23232 }
23233
23234 /* Check if backend is an external ec ref port and set as needed */
23235 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23236
23237 memset(&voc_be_media_format, 0,
23238 sizeof(struct media_format_info));
23239
23240 /* Get format info for ec ref port from msm_bedais[] */
23241 voc_be_media_format.port_id = bedai->port_id;
23242 voc_be_media_format.num_channels = bedai->channel;
23243 voc_be_media_format.bits_per_sample = bedai->format;
23244 voc_be_media_format.sample_rate = bedai->sample_rate;
23245 /* Defaulting this to 1 for voice call usecases */
23246 voc_be_media_format.channel_mapping[0] = 1;
23247 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23248 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23249 __func__, voc_be_media_format.port_id,
23250 voc_be_media_format.num_channels,
23251 voc_be_media_format.bits_per_sample,
23252 voc_be_media_format.sample_rate);
23253 }
23254
23255done:
23256 mutex_unlock(&routing_lock);
23257
23258 return 0;
23259}
23260
23261static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23262 int fe_id)
23263{
23264 int index, topo_id, be_idx;
23265 unsigned long pp_config = 0;
23266 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023267 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023268 bool compr_passthr_mode = true;
23269
23270 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23271
23272 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23273 pr_err("%s: Device pp params on invalid port %d\n",
23274 __func__, port_id);
23275 return -EINVAL;
23276 }
23277
23278 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23279 if (port_id == msm_bedais[be_idx].port_id)
23280 break;
23281 }
23282
23283 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23284 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23285 return -EINVAL;
23286 }
23287
23288 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23289 if (msm_bedais_pp_params[index].port_id == port_id)
23290 break;
23291 }
23292 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23293 pr_err("%s: Invalid backend pp params index %d\n",
23294 __func__, index);
23295 return -EINVAL;
23296 }
23297
23298 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23299 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23300 pr_err("%s: Invalid passthrough topology 0x%x\n",
23301 __func__, topo_id);
23302 return -EINVAL;
23303 }
23304
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023305 session_type =
23306 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23307 SESSION_TYPE_RX : SESSION_TYPE_TX;
23308
23309 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23310 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023311 compr_passthr_mode = false;
23312
23313 pp_config = msm_bedais_pp_params[index].pp_params_config;
23314 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23315 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23316 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23317 mute_on = msm_bedais_pp_params[index].mute_on;
23318 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23319 adm_send_compressed_device_mute(port_id,
23320 copp_idx,
23321 mute_on);
23322 }
23323 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23324 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23325 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23326 &pp_config);
23327 latency = msm_bedais_pp_params[index].latency;
23328 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23329 adm_send_compressed_device_latency(port_id,
23330 copp_idx,
23331 latency);
23332 }
23333 return 0;
23334}
23335
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023336static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23337{
23338 uint32_t topology = NULL_COPP_TOPOLOGY;
23339 void *cal_info = NULL;
23340 uint32_t size = 0;
23341
23342 /* Retrieve cal_info size from cal data*/
23343 size = data_size - sizeof(struct audio_cal_type_basic);
23344 cal_info = kzalloc(size, GFP_KERNEL);
23345
23346 if (!cal_info)
23347 goto done;
23348
23349 memcpy(cal_info,
23350 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23351
23352 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23353 kfree(cal_info);
23354 cal_info = NULL;
23355
23356done:
23357 pr_debug("%s: Using topology %d\n", __func__, topology);
23358
23359 return topology;
23360}
23361
23362static void msm_routing_load_topology(size_t data_size, void *data)
23363{
23364 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023365 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023366
23367 topology_id = msm_routing_get_topology(data_size, data);
23368 if (topology_id != NULL_COPP_TOPOLOGY)
23369 ret = q6core_load_unload_topo_modules(topology_id,
23370 CORE_LOAD_TOPOLOGY);
23371 if (ret < 0)
23372 pr_debug("%s %d load topology failed\n",
23373 __func__, topology_id);
23374
23375}
23376
23377static void msm_routing_unload_topology(uint32_t topology_id)
23378{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023379 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023380
23381 if (topology_id != NULL_COPP_TOPOLOGY)
23382 ret = q6core_load_unload_topo_modules(topology_id,
23383 CORE_UNLOAD_TOPOLOGY);
23384 if (ret < 0)
23385 pr_debug("%s %d unload topology failed\n",
23386 __func__, topology_id);
23387
23388}
23389
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023390static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23391 struct snd_ctl_elem_value *ucontrol)
23392{
23393 int pp_id = ucontrol->value.integer.value[0];
23394 int port_id = 0;
23395 int index, be_idx, i, topo_id, idx;
23396 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023397 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023398 bool compr_passthr_mode = true;
23399
23400 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23401
23402 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23403 port_id = msm_bedais[be_idx].port_id;
23404 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
23405 break;
23406 }
23407
23408 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23409 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23410 return -EINVAL;
23411 }
23412
23413 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23414 if (msm_bedais_pp_params[index].port_id == port_id)
23415 break;
23416 }
23417 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23418 pr_err("%s: Invalid pp params backend index %d\n",
23419 __func__, index);
23420 return -EINVAL;
23421 }
23422
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023423 session_type =
23424 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23425 SESSION_TYPE_RX : SESSION_TYPE_TX;
23426
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023427 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
23428 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023429 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
23430 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023431 compr_passthr_mode = false;
23432
23433 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23434 unsigned long copp =
23435 session_copp_map[i]
23436 [SESSION_TYPE_RX][be_idx];
23437 if (!test_bit(idx, &copp))
23438 continue;
23439 topo_id = adm_get_topology_for_port_copp_idx(port_id,
23440 idx);
23441 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
23442 continue;
23443 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
23444 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023445 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023446 switch (pp_id) {
23447 case ADM_PP_PARAM_MUTE_ID:
23448 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23449 mute = ucontrol->value.integer.value[1] ? true : false;
23450 msm_bedais_pp_params[index].mute_on = mute;
23451 set_bit(ADM_PP_PARAM_MUTE_BIT,
23452 &msm_bedais_pp_params[index].pp_params_config);
23453 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23454 adm_send_compressed_device_mute(port_id,
23455 idx, mute);
23456 break;
23457 case ADM_PP_PARAM_LATENCY_ID:
23458 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23459 msm_bedais_pp_params[index].latency =
23460 ucontrol->value.integer.value[1];
23461 set_bit(ADM_PP_PARAM_LATENCY_BIT,
23462 &msm_bedais_pp_params[index].pp_params_config);
23463 latency = msm_bedais_pp_params[index].latency =
23464 ucontrol->value.integer.value[1];
23465 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23466 adm_send_compressed_device_latency(port_id,
23467 idx, latency);
23468 break;
23469 default:
23470 pr_info("%s, device pp param %d not supported\n",
23471 __func__, pp_id);
23472 break;
23473 }
23474 }
23475 }
23476 return 0;
23477}
23478
23479static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23480 struct snd_ctl_elem_value *ucontrol)
23481{
23482 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
23483 return 0;
23484}
23485
23486static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
23487 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
23488 0, 3, msm_routing_get_device_pp_params_mixer,
23489 msm_routing_put_device_pp_params_mixer),
23490};
23491
23492static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
23493 struct snd_ctl_elem_value *ucontrol)
23494{
23495 ucontrol->value.integer.value[0] =
23496 core_get_license_status(ASM_MEDIA_FMT_APTX);
23497 pr_debug("%s: status %ld\n", __func__,
23498 ucontrol->value.integer.value[0]);
23499 return 0;
23500}
23501
23502static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
23503 struct snd_ctl_elem_value *ucontrol)
23504{
23505 int32_t status = 0;
23506
23507 status = core_set_license(ucontrol->value.integer.value[0],
23508 APTX_CLASSIC_DEC_LICENSE_ID);
23509 pr_debug("%s: status %d\n", __func__, status);
23510 return status;
23511}
23512
23513static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
23514 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
23515 0xFFFF, 0, msm_aptx_dec_license_control_get,
23516 msm_aptx_dec_license_control_put),
23517};
23518
23519static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
23520 struct snd_ctl_elem_info *uinfo)
23521{
23522 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
23523 uinfo->count = sizeof(be_dai_name_table);
23524 return 0;
23525}
23526
23527static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
23528 unsigned int __user *bytes,
23529 unsigned int size)
23530{
23531 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023532 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023533
23534 if (size < sizeof(be_dai_name_table)) {
23535 pr_err("%s: invalid size %d requested, returning\n",
23536 __func__, size);
23537 ret = -EINVAL;
23538 goto done;
23539 }
23540
23541 /*
23542 * Fill be_dai_name_table from msm_bedais table to reduce code changes
23543 * needed when adding new backends
23544 */
23545 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23546 be_dai_name_table[i].be_id = i;
23547 strlcpy(be_dai_name_table[i].be_name,
23548 msm_bedais[i].name,
23549 LPASS_BE_NAME_MAX_LENGTH);
23550 }
23551
23552 ret = copy_to_user(bytes, &be_dai_name_table,
23553 sizeof(be_dai_name_table));
23554 if (ret) {
23555 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
23556 ret = -EFAULT;
23557 }
23558
23559done:
23560 return ret;
23561}
23562
23563static const struct snd_kcontrol_new
23564 msm_routing_be_dai_name_table_mixer_controls[] = {
23565 {
23566 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
23567 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
23568 .info = msm_routing_be_dai_name_table_info,
23569 .name = "Backend DAI Name Table",
23570 .tlv.c = snd_soc_bytes_tlv_callback,
23571 .private_value = (unsigned long) &(struct soc_bytes_ext) {
23572 .max = sizeof(be_dai_name_table),
23573 .get = msm_routing_be_dai_name_table_tlv_get,
23574 }
23575 },
23576};
23577
23578static int msm_routing_stereo_channel_reverse_control_get(
23579 struct snd_kcontrol *kcontrol,
23580 struct snd_ctl_elem_value *ucontrol)
23581{
23582 ucontrol->value.integer.value[0] = swap_ch;
23583 pr_debug("%s: Swap channel value: %ld\n", __func__,
23584 ucontrol->value.integer.value[0]);
23585 return 0;
23586}
23587
23588static int msm_routing_stereo_channel_reverse_control_put(
23589 struct snd_kcontrol *kcontrol,
23590 struct snd_ctl_elem_value *ucontrol)
23591{
23592 int i, idx, be_index, port_id;
23593 int ret = 0;
23594 unsigned long copp;
23595
23596 pr_debug("%s Swap channel value:%ld\n", __func__,
23597 ucontrol->value.integer.value[0]);
23598
23599 swap_ch = ucontrol->value.integer.value[0];
23600
23601 mutex_lock(&routing_lock);
23602 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
23603 port_id = msm_bedais[be_index].port_id;
23604 if (!msm_bedais[be_index].active)
23605 continue;
23606
23607 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
23608 MSM_FRONTEND_DAI_MM_SIZE) {
23609 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
23610 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23611 if (!test_bit(idx, &copp))
23612 continue;
23613
23614 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
23615 __func__, port_id, idx);
23616 ret = adm_swap_speaker_channels(
23617 port_id, idx,
23618 msm_bedais[be_index].sample_rate,
23619 swap_ch);
23620 if (ret) {
23621 pr_err("%s:Swap_channel failed, err=%d\n",
23622 __func__, ret);
23623 goto done;
23624 }
23625 }
23626 }
23627 }
23628done:
23629 mutex_unlock(&routing_lock);
23630 return ret;
23631}
23632
23633static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
23634 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
23635 1, 0, msm_routing_stereo_channel_reverse_control_get,
23636 msm_routing_stereo_channel_reverse_control_put),
23637};
23638
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023639static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
23640 struct snd_ctl_elem_info *uinfo)
23641{
23642 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
23643 uinfo->count = 1;
23644 return 0;
23645}
23646
23647static int msm_routing_instance_id_support_put(
23648 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23649{
23650 bool supported = ucontrol->value.integer.value[0] ? true : false;
23651
23652 q6common_update_instance_id_support(supported);
23653 return 0;
23654}
23655
23656static int msm_routing_instance_id_support_get(
23657 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23658{
23659 bool supported = false;
23660
23661 supported = q6common_is_instance_id_supported();
23662 ucontrol->value.integer.value[0] = supported ? 1 : 0;
23663
23664 return 0;
23665}
23666
23667static const struct snd_kcontrol_new
23668 msm_routing_feature_support_mixer_controls[] = {
23669 {
23670 .access = SNDRV_CTL_ELEM_ACCESS_READ |
23671 SNDRV_CTL_ELEM_ACCESS_WRITE,
23672 .info = msm_routing_instance_id_support_info,
23673 .name = "Instance ID Support",
23674 .put = msm_routing_instance_id_support_put,
23675 .get = msm_routing_instance_id_support_get,
23676 },
23677};
23678
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023679static const struct snd_pcm_ops msm_routing_pcm_ops = {
23680 .hw_params = msm_pcm_routing_hw_params,
23681 .close = msm_pcm_routing_close,
23682 .prepare = msm_pcm_routing_prepare,
23683};
23684
23685/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080023686static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023687{
Meng Wangee084a02018-09-04 16:11:58 +080023688 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023689 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080023690 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023691 ARRAY_SIZE(intercon));
23692
Meng Wangee084a02018-09-04 16:11:58 +080023693 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023694
Meng Wangee084a02018-09-04 16:11:58 +080023695 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023696 ARRAY_SIZE(lsm_controls));
23697
Meng Wangee084a02018-09-04 16:11:58 +080023698 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023699 ARRAY_SIZE(aanc_slim_0_rx_mux));
23700
Meng Wangee084a02018-09-04 16:11:58 +080023701 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053023702 ARRAY_SIZE(aanc_noise_level));
23703
Meng Wangee084a02018-09-04 16:11:58 +080023704 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023705 ARRAY_SIZE(msm_voc_session_controls));
23706
Meng Wangee084a02018-09-04 16:11:58 +080023707 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023708 ARRAY_SIZE(app_type_cfg_controls));
23709
Meng Wangee084a02018-09-04 16:11:58 +080023710 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023711 ARRAY_SIZE(lsm_app_type_cfg_controls));
23712
Meng Wangee084a02018-09-04 16:11:58 +080023713 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070023714 ARRAY_SIZE(module_cfg_controls));
23715
Meng Wangee084a02018-09-04 16:11:58 +080023716 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023717 stereo_to_custom_stereo_controls,
23718 ARRAY_SIZE(stereo_to_custom_stereo_controls));
23719
Meng Wangee084a02018-09-04 16:11:58 +080023720 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023721 ARRAY_SIZE(ec_ref_param_controls));
23722
Meng Wangee084a02018-09-04 16:11:58 +080023723 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023724 ARRAY_SIZE(channel_mixer_controls));
23725
Meng Wangee084a02018-09-04 16:11:58 +080023726 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023727
Meng Wangee084a02018-09-04 16:11:58 +080023728 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023729
Meng Wangee084a02018-09-04 16:11:58 +080023730 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023731
Meng Wangee084a02018-09-04 16:11:58 +080023732 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023733 use_ds1_or_ds2_controls,
23734 ARRAY_SIZE(use_ds1_or_ds2_controls));
23735
Meng Wangee084a02018-09-04 16:11:58 +080023736 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023737 device_pp_params_mixer_controls,
23738 ARRAY_SIZE(device_pp_params_mixer_controls));
23739
Meng Wangee084a02018-09-04 16:11:58 +080023740 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023741 msm_routing_be_dai_name_table_mixer_controls,
23742 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
23743
Meng Wangee084a02018-09-04 16:11:58 +080023744 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023745 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080023746 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023747 ARRAY_SIZE(adm_channel_config_controls));
23748
Meng Wangee084a02018-09-04 16:11:58 +080023749 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023750 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080023751 snd_soc_add_component_controls(component,
23752 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023753 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080023754 snd_soc_add_component_controls(
23755 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023756 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
23757
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023758 return 0;
23759}
23760
23761int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
23762{
23763 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
23764}
23765
23766void msm_routing_pcm_free(struct snd_pcm *pcm)
23767{
23768 msm_pcm_routing_hwdep_free(pcm);
23769}
23770
Meng Wangee084a02018-09-04 16:11:58 +080023771static struct snd_soc_component_driver msm_soc_routing_component = {
23772 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023773 .ops = &msm_routing_pcm_ops,
23774 .probe = msm_routing_probe,
23775 .pcm_new = msm_routing_pcm_new,
23776 .pcm_free = msm_routing_pcm_free,
23777};
23778
23779static int msm_routing_pcm_probe(struct platform_device *pdev)
23780{
23781
23782 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080023783 return snd_soc_register_component(&pdev->dev,
23784 &msm_soc_routing_component,
23785 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023786}
23787
23788static int msm_routing_pcm_remove(struct platform_device *pdev)
23789{
Meng Wangee084a02018-09-04 16:11:58 +080023790 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023791 return 0;
23792}
23793
23794static const struct of_device_id msm_pcm_routing_dt_match[] = {
23795 {.compatible = "qcom,msm-pcm-routing"},
23796 {}
23797};
23798MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
23799
23800static struct platform_driver msm_routing_pcm_driver = {
23801 .driver = {
23802 .name = "msm-pcm-routing",
23803 .owner = THIS_MODULE,
23804 .of_match_table = msm_pcm_routing_dt_match,
23805 },
23806 .probe = msm_routing_pcm_probe,
23807 .remove = msm_routing_pcm_remove,
23808};
23809
23810int msm_routing_check_backend_enabled(int fedai_id)
23811{
23812 int i;
23813
23814 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
23815 /* bad ID assigned in machine driver */
23816 pr_err("%s: bad MM ID\n", __func__);
23817 return 0;
23818 }
23819 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23820 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
23821 return msm_bedais[i].active;
23822 }
23823 return 0;
23824}
23825
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023826static int get_cal_type_index(int32_t cal_type)
23827{
23828 int ret = -EINVAL;
23829
23830 switch (cal_type) {
23831 case ADM_TOPOLOGY_CAL_TYPE:
23832 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
23833 break;
23834 case ADM_LSM_TOPOLOGY_CAL_TYPE:
23835 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
23836 break;
23837 default:
23838 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
23839 }
23840 return ret;
23841}
23842
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023843static int msm_routing_set_cal(int32_t cal_type,
23844 size_t data_size, void *data)
23845{
23846 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023847 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023848 pr_debug("%s\n", __func__);
23849
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023850 cal_index = get_cal_type_index(cal_type);
23851 if (cal_index < 0) {
23852 pr_err("%s: Could not get cal index %d\n",
23853 __func__, cal_index);
23854 ret = -EINVAL;
23855 goto done;
23856 }
23857
23858 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023859 if (ret < 0) {
23860 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
23861 __func__, ret, cal_type);
23862 ret = -EINVAL;
23863 goto done;
23864 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023865 /* Pre-load if it is ADM topology */
23866 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
23867 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
23868 msm_routing_load_topology(data_size, data);
23869 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023870done:
23871 return ret;
23872}
23873
23874static void msm_routing_delete_cal_data(void)
23875{
23876 pr_debug("%s\n", __func__);
23877
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023878 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023879}
23880
23881static int msm_routing_init_cal_data(void)
23882{
23883 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023884 struct cal_type_info cal_type_info[] = {
23885 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023886 {NULL, NULL, NULL,
23887 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023888 {NULL, NULL, cal_utils_match_buf_num} },
23889
23890 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
23891 {NULL, NULL, NULL,
23892 msm_routing_set_cal, NULL, NULL} },
23893 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023894 };
23895 pr_debug("%s\n", __func__);
23896
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023897 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
23898 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023899 if (ret < 0) {
23900 pr_err("%s: could not create cal type!\n",
23901 __func__);
23902 ret = -EINVAL;
23903 goto err;
23904 }
23905
23906 return ret;
23907err:
23908 msm_routing_delete_cal_data();
23909 return ret;
23910}
23911
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053023912int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023913{
23914 mutex_init(&routing_lock);
23915 if (msm_routing_init_cal_data())
23916 pr_err("%s: could not init cal data!\n", __func__);
23917
23918 afe_set_routing_callback(
23919 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
23920
23921 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23922 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
23923
23924 return platform_driver_register(&msm_routing_pcm_driver);
23925}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023926
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053023927void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023928{
23929 msm_routing_delete_cal_data();
23930 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23931 mutex_destroy(&routing_lock);
23932 platform_driver_unregister(&msm_routing_pcm_driver);
23933}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023934
23935MODULE_DESCRIPTION("MSM routing platform driver");
23936MODULE_LICENSE("GPL v2");